注意:Spring Boot 2.7開始spring.factories不推薦使用了,接下來這麼玩...

語言: CN / TW / HK

如果你是Spring Boot用户的話,一定有這樣的開發體驗,當我們要引入某個功能的時候,只需要在maven或gradle的配置中直接引入對應的Starter,馬上就可以使用了,而不需要像傳統Spring應用那樣寫個xml或java配置類來初始化各種Bean。

如果你有探索過這些Starter的原理,那你一定知道Spring Boot並沒有消滅這些原本你要配置的Bean,而是將這些Bean做成了一些默認的配置類,同時利用/META-INF/spring.factories這個文件來指定要加載的默認配置。

這樣當Spring Boot應用啟動的時候,就會根據引入的各種Starter中的/META-INF/spring.factories文件所指定的配置類去加載Bean。

而這次剛發佈的Spring Boot 2.7中,有一個不推薦使用的內容就是關於這個/META-INF/spring.factories文件的,所以對於有自定義Starter的開發者來説,有時間要抓緊把這一變化改起來了,因為在Spring Boot 3開始將移除對/META-INF/spring.factories的支持。

image.png

那麼具體怎麼改呢?下面以之前我們編寫的一個swagger的starter為例,它的/META-INF/spring.factories內容是這樣的:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.spring4all.swagger.SwaggerAutoConfiguration

我們只需要創建一個新的文件:/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports,內容的話只需要直接放配置類就可以了,比如這樣:

com.spring4all.swagger.SwaggerAutoConfiguration

注意:這裏多了一級spring目錄。

如果你覺得維護這個太麻煩的話,還可以使用mica-auto來讓他自動生成,具體怎麼用可以看之前發的這篇文章

如果您學習過程中如遇困難?可以加入我們超高質量的Spring技術交流羣,參與交流與討論,更好的學習與進步!更多Spring Boot教程可以點擊直達!,歡迎收藏與轉發支持!

歡迎關注我的公眾號:程序猿DD。第一時間瞭解前沿行業消息、分享深度技術乾貨、獲取優質學習資源