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 版本開(kāi)始,變更為寫在 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)文章希望大家以后多多支持腳本之家!
- springboot使用@ConfigurationProperties實(shí)現(xiàn)自動(dòng)綁定配置參數(shù)屬性
- SpringBoot中的@ConfigurationProperties注解的使用
- SpringBoot中@ConfigurationProperties自動(dòng)獲取配置參數(shù)的流程步驟
- Springboot之@ConfigurationProperties注解解讀
- SpringBoot中的@ConfigurationProperties注解解析
- 關(guān)于SpringBoot的@ConfigurationProperties注解和松散綁定、數(shù)據(jù)校驗(yàn)
- SpringBoot中@AutoConfiguration和@Configuration區(qū)別
相關(guān)文章
解析探秘fescar分布式事務(wù)實(shí)現(xiàn)原理
這篇文章主要為大家解析探秘fescar分布式事務(wù)的實(shí)現(xiàn)原理,fescar的txc模型實(shí)現(xiàn)非常有研究的價(jià)值,所以今天我們來(lái)好好翻一翻fescar項(xiàng)目的代碼2022-02-02
SpringBoot項(xiàng)目中連接Gauss數(shù)據(jù)庫(kù)
本文主要介紹了SpringBoot項(xiàng)目中連接Gauss數(shù)據(jù)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06
Gradle配置國(guó)內(nèi)鏡像加速指南(最全最詳細(xì))
在使用 Gradle 進(jìn)行 Java、Android 或其他 JVM 項(xiàng)目開(kāi)發(fā)時(shí),最令人頭疼的問(wèn)題之一就是依賴下載速度慢,所以本文將提供最詳細(xì)最全面的 Gradle 配置國(guó)內(nèi)鏡像的指南,希望對(duì)大家有所幫助2025-08-08
SpringBoot運(yùn)行時(shí)修改定時(shí)任務(wù)Cron表達(dá)式的實(shí)現(xiàn)方案
在項(xiàng)目開(kāi)發(fā)中,定時(shí)任務(wù)是一個(gè)常見(jiàn)的需求,SpringBoot通過(guò)@Scheduled注解提供了簡(jiǎn)便的定時(shí)任務(wù)實(shí)現(xiàn)方式,但默認(rèn)情況下,一旦應(yīng)用啟動(dòng),定時(shí)任務(wù)的Cron表達(dá)式就無(wú)法動(dòng)態(tài)調(diào)整,本文將介紹如何在SpringBoot應(yīng)用運(yùn)行期間動(dòng)態(tài)修改定時(shí)任務(wù)的Cron表達(dá)式,需要的朋友可以參考下2025-06-06
SpringBoot整合RocketMq實(shí)現(xiàn)分布式事務(wù)
這篇文章主要為大家詳細(xì)介紹了SpringBoot整合RocketMq實(shí)現(xiàn)分布式事務(wù)的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下2024-11-11
java全角與半角標(biāo)點(diǎn)符號(hào)相互轉(zhuǎn)換詳解
這篇文章主要為大家介紹了java全角與半角標(biāo)點(diǎn)符號(hào)相互轉(zhuǎn)換詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
JAVA實(shí)現(xiàn)基于Tcp協(xié)議的簡(jiǎn)單Socket通信實(shí)例
本篇文章主要介紹了JAVA實(shí)現(xiàn)基于Tcp協(xié)議的簡(jiǎn)單Socket通信實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
IntelliJ IDEA之配置JDK的4種方式(小結(jié))
這篇文章主要介紹了IntelliJ IDEA之配置JDK的4種方式(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
SpringBoot深入理解之內(nèi)置web容器及配置的總結(jié)
今天小編就為大家分享一篇關(guān)于SpringBoot深入理解之內(nèi)置web容器及配置的總結(jié),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03

