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

程式猿DD發表於2022-06-01

如果你是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的支援。

那麼具體怎麼改呢?下面以之前我們編寫的一個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。第一時間瞭解前沿行業訊息、分享深度技術乾貨、獲取優質學習資源

相關文章