工作中經常用到的關于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多環(huán)境支持以及默認配置讀取
Spring boot默認使用application.yml配置文件,可以新建application-{profile}.yml進行多環(huán)境配置愕秫,如application-dev.yml表示開發(fā)環(huán)境的配置慨菱,application.prd.yml表示生產環(huán)境的配置。配置完成后戴甩,可以使用命令行--spring.profiles.active=dev激活指定的配置文件符喝。也可以使用虛擬機參數-Dspring.profiles.active=dev激活配置。
Spring boot讀取配置文件默認順序是:項目根目錄下的/config/目錄 => 項目根/ => classpath下的/config/目錄 => classpath目錄下(常用的Resource目錄下)甜孤,按優(yōu)先級順序讀取协饲,如果高優(yōu)先級中沒有配置,則向下讀取低優(yōu)先級的配置缴川。生產環(huán)境使用場景最多的是茉稠,用命令行--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方法,在該方法中注冊實例化攔截器规哲。
暫時寫以上這些,不定期更新補充诽表。