如果你是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。第一時間瞭解前沿行業訊息、分享深度技術乾貨、獲取優質學習資源