Spring Boot知识点(二)-常用总结

工作中经常用到的关于Spring Boot的知识点,整理如下。如果不了解的地方,可以查阅Spring Boot官方文档https://docs.spring.io/spring-boot/docs/2.1.7.RELEASE/reference/html/

1. 配置文件值获取

@ConfigurationProperties(prefix="xxx"):该注解用于类上,可以注入配置文件中xxx开头的一些列属性,适合注入类中的多个属性,由springboot提供,全类名为org.springframework.boot.SpringBootConfiguration,默认从全局配置文件中获取值;
@PropertySource(value = "classpath:xxx.yml"):从指定文件中获取值。
@Value("${xxx.xxx:default}"):该注解用于字段上,可以注入一个值,可以使用表达式。可以使用冒号后隔离,如果获取不到冒号前的配置,则使用冒号后作为默认值,该注解由spring提供,全类名为org.springframework.beans.factory.annotation.Value;
@ImportResource(locations = {"classpath:xxx.xml"}):自己编写的xml配置文件Spring Boot不会加载,在启动类上使用ImportResource可以加载该配置。推荐使用@Configuration配置类取代xml配置。

2. Profile多环境支持以及默认配置读取

Spring boot默认使用application.yml配置文件,可以新建application-{profile}.yml进行多环境配置,如application-dev.yml表示开发环境的配置,application.prd.yml表示生产环境的配置。配置完成后,可以使用命令行--spring.profiles.active=dev激活指定的配置文件。也可以使用虚拟机参数-Dspring.profiles.active=dev激活配置。
Spring boot读取配置文件默认顺序是:项目根目录下的/config/目录 => 项目根/ => classpath下的/config/目录 => classpath目录下(常用的Resource目录下),按优先级顺序读取,如果高优先级中没有配置,则向下读取低优先级的配置。生产环境使用场景最多的是,用命令行--spring.config.location=/etc/java/springboot改变默认的配置文件查找路径,也可以用命令行改变单个配置,如--server.port=8899。

3. 条件注解@Conditional

配置类@Configuration中的配置可以在满足一定的条件下@Conditional(Condition=xxx.class)启用,不满足则不启用配置类。@Conditional注解的value是一个自己写的xxx.class,该class继承Condition接口,实现它的match方法即可,返回值为bool。

4. Spring Boot debug日志

在配置文件中使用debug=true打印Spring Boot的debug日志。

5. 拦截器

Spring Boot拦截器最常用的使用场景就是登录拦截了,做一些前置处理。自己写拦截器需要实现HandlerInterceptor接口,并实现其preHandle等方法。同时将其加入配置,配置类需要加上@Configuration并实现WebMvcConfigurer接口,实现其addInterceptors方法,在该方法中注册实例化拦截器。

暂时写以上这些,不定期更新补充。

你可能感兴趣的:(Spring Boot知识点(二)-常用总结)