SpringBoot?注解?@AutoConfiguration?在?2.7?版本中被新增的使用方法詳解
自 Spring Boot 2.7.0 版本起,關(guān)于自動(dòng)配置進(jìn)行了較大調(diào)整,要特別注意,主要內(nèi)容如下。
1、自動(dòng)配置注冊(cè)文件
之前版本的自動(dòng)配置類是寫在 META-INF/spring.factories
文件中的,內(nèi)容示例如下:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.example.MyAutoConfiguration1,\ com.example.MyAutoConfiguration2,\ com.example.MyAutoConfiguration3
自 2.7.0
版本開始,變更為寫在 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
文件中,每行條記錄,內(nèi)容示例如下:
com.example.MyAutoConfiguration1 com.example.MyAutoConfiguration2 com.example.MyAutoConfiguration3
a) 編寫格式確實(shí)是比之前方便多了,但文件名確實(shí)也太長(zhǎng)了,比較難記。
b) 為了兼容性META-INF/spring.factories
雖然現(xiàn)在被標(biāo)識(shí)廢棄了,但現(xiàn)在仍然可以使用,后續(xù)可能被徹底刪除,建議使用新的規(guī)范。
2、新注解 @AutoConfiguration
新增了一個(gè)自動(dòng)配置注解 @AutoConfiguration
,用來(lái)代替之前的 @Configuration
,用于標(biāo)識(shí)新自動(dòng)配置注冊(cè)文件中的頂級(jí)自動(dòng)配置類,由 @AutoConfiguration
注解嵌套、導(dǎo)入進(jìn)來(lái)的其他配置類可以繼續(xù)使用 @Configuration
注解。
另外,為方便起見(jiàn),@AutoConfiguration
注解還支持 after
, afterNames
, before
和 beforeNames
屬性進(jìn)行自動(dòng)配置排序。
你可以把 @AutoConfiguration
在一定程度上理解為 @Configuration
+ @AutoConfigureAfter
+ @AutoConfigureBefore
的組合。
除此組合包裝之外,在 @SpringBootApplication
自動(dòng)加載時(shí),使用 AutoConfigurationExcludeFilter
排除了 @AutoConfiguration
修飾的類,這樣更明確的把 @AutoConfiguration
定義為自動(dòng)配置類,所以使用 @AutoConfiguration
注解的類默認(rèn)不會(huì)被 Spring 加載,你必須要主動(dòng)配置到 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
文件中才可以正常被加載。
這個(gè)注解可以說(shuō)細(xì)分的更加清晰了,即直接理解為自動(dòng)配置專用注解,用專門的注解來(lái)干專門的事,這樣也可以用來(lái)區(qū)分用 @Configuration
標(biāo)識(shí)的普通配置類。
2.7 版本還新增的其他內(nèi)容
- 支持 GraphQL
- 支持 Podman
- 支持 RabbitStreamTemplate
- 支持 Hazelcast
- 支持 Cache2k
- Web Server SSL 增強(qiáng)
- info 端點(diǎn)增強(qiáng)
- 單元測(cè)試加強(qiáng)
以上內(nèi)容的新增,具體情況詳見(jiàn)官網(wǎng)。
總結(jié)
Spring Boot 2.7.0 新增了不少新特性,變化還比較大,特別是自動(dòng)配置的變更有明顯調(diào)整,要特別注意。
到此這篇關(guān)于SpringBoot 注解 @AutoConfiguration 在 2.7 版本中被新增(使用方法)的文章就介紹到這了,更多相關(guān)SpringBoot 注解 @AutoConfiguration內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Data JPA 簡(jiǎn)單查詢--方法定義規(guī)則(詳解)
下面小編就為大家?guī)?lái)一篇Spring Data JPA 簡(jiǎn)單查詢--方法定義規(guī)則(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04使用Mybatis-Plus實(shí)現(xiàn)對(duì)象屬性自動(dòng)填充功能
這篇文章主要介紹了如何使用Mybatis-Plus實(shí)現(xiàn)對(duì)象屬性自動(dòng)填充功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,感興趣的朋友們下面隨著小編來(lái)一起來(lái)學(xué)習(xí)吧2024-01-01如何在SpringBoot 中使用 Druid 數(shù)據(jù)庫(kù)連接池
這篇文章主要介紹了SpringBoot 中使用 Druid 數(shù)據(jù)庫(kù)連接池的實(shí)現(xiàn)步驟,幫助大家更好的理解和學(xué)習(xí)使用SpringBoot,感興趣的朋友可以了解下2021-03-03簡(jiǎn)單了解Java的默認(rèn)和靜態(tài)方法
這篇文章主要介紹了簡(jiǎn)單了解Java的默認(rèn)和靜態(tài)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01JAVA實(shí)現(xiàn)FTP斷點(diǎn)上傳的方法
這篇文章主要介紹了JAVA實(shí)現(xiàn)FTP斷點(diǎn)上傳的方法,涉及java使用FTP實(shí)現(xiàn)文件傳輸?shù)南嚓P(guān)技巧,需要的朋友可以參考下2015-06-06解決 java.lang.NoSuchMethodError的錯(cuò)誤
這篇文章主要介紹了解決 java.lang.NoSuchMethodError的錯(cuò)誤的相關(guān)資料,需要的朋友可以參考下2017-06-06