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