当前位置:   article > 正文

关于SpringBoot的一些使用笔记_org.springframewo

org.springframework.boot
  • 导入依赖:

        <!--web开发相关依赖-->

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

        <!--spring security-->

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-security</artifactId>

        </dependency>

        <!--SpringBoot maven插件-->

        <plugins>

            <plugin>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-maven-plugin</artifactId>

                <version>2.6.4</version>

            </plugin>

        </plugins>

  • 常用注解:
    • @SpringBootApplicationSpringBoot启动类。
      • 参数:(exclude = {SecurityAutoConfiguration.class})
      • 作用:排除Secuirty的配置,让他不启用
    • @Configuration:Spring 框架自带的配置注解。加上该注解后 Spring 框架会自动读取该类。
    • @EnableWebSecurity Application 启动类上的注解,默认开启,可加可不加。
    • @EnableGlobalMethodSecurity( prePostEnabled = true )
      • 启用方法级别的认证,用于让业务层方法上控制权限的注解生效,prePostEnabled 默认是 false。
      • 表示可以使用 @PreAuthorize 注解 和 @PostAuthorize 注解
    • @Autowired:默认是根据类型进行注入,如果有两个以上相同类型,则需要指定名称 name;
      • 使用 @Qualifier(value = "") 来获取指定的 @Bean(name = "")
      • value name 相对应。
    • @MapperScan(value = "com.xxx.mapper")
      • 用在 Application 启动类上,用于指定 mapper 接口。若不写,需要在所有 Mapper 接口上加上 @Mapper 注解。
    • @Mapper
      • 用在 Mapper 接口上,用于将自己交给 Spring 容器进行管理。
    • @PostConstruct
      • 加上该注解的方法会在 SpringBoot 服务器启动时自动执行。

  • 关于 Configure 配置类(需要继承 WebSecurityConfigurerAdapter):

        //通过spring容器注入 DataSource

        @Autowired

        private DataSource dataSource;

        //创建密码的加密类

        //<bean id="passwordEncoder"                 class="org.springframework.security.crypto.password.PasswordEncoder">

        @Bean

        public PasswordEncoder passwordEncoder(){

                //创建PasawordEncoder的实现类, 实现类是加密算法

                return new BCryptPasswordEncoder();

        }

        @Override

        //重写 configure 方法

 

  具体使用:

  • 编写一个配置类继承 WebSecurityConfigurerAdapter,通过重写该类的 configure( AuthenticationManagerBuilder auth ) 方法来控制权限。
    • AuthenticationManagerBuilder 对象有  auth.userDetailsService(userDetailsService).passwordEncoder(new BCryptPasswordEncoder());,可以直接实现加密算法。
  • 编写一个配置类继承 WebSecurityConfigurerAdapter,注入 UserDetailsService 对象(UserDetailsService 对象控制权限),然后重写该类的 configure( HttpSecurity http ) 方法,调用 http.userDetailsService(userDetailsService)

  • 关于 application.properties
    • 设置默认 security 的用户名密码(不实用):

                spring.security.user.name=admin

                spring.security.user.password=admin

  • 配置数据源:

                spring.datasource.driver-class-name=com.mysql.jdbc.Driver

                spring.datasource.url=jdbc:mysql://localhost:3306/springboot

                spring.datasource.username=root

                spring.datasource.password=123456

  • 指定mybatis mapper.xml位置

                mybatis.mapper-locations=classpath:/mapper/*Mapper.xml

                作用:可以将 mapper 配置文件放在 resources 目录里,不需要再通过注解进行注入。

  • 起别名

                mybatis.type-aliases-package=com.xxx.entity

                作用:在mapper文件引用 entitty 实体时可以不需要再写实体类的全限定名。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/421917
推荐阅读
相关标签