注意:Spring Boot 2.7開始spring.factories不推薦使用了,接下來這麼玩...
如果你是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。第一時間瞭解前沿行業訊息、分享深度技術乾貨、獲取優質學習資源
- 重磅!Spring Cloud 生態再添新套件:Spring Cloud Tencent
- 免申請直接用上 IDEA 新 UI,只需要這三步配置
- 如何設定IntelliJ IDEA的記憶體和啟動引數
- spring-configuration-metadata.json檔案是做啥的?
- JetBrains IDE全新UI預覽版來了,要做簡潔與強大兼顧的IDE
- 注意:Spring Boot 2.7開始spring.factories不推薦使用了,接下來這麼玩...
- Spring Boot整合Swagger時PatternsRequestCondition.getPatterns()報錯:"this.condition" is null
- Spring Boot Starter配置spring.factories的自動生成神器:mica-auto
- Stream.toList()和Collectors.toList()的效能比較
- Java Stream轉List的幾種方法
- Java中如何快捷的建立不可變集合
- 一文學會Java的互動式程式設計環境jshell
- Gitee倉庫開源要稽核為什麼被噴?
- Java 15 新特性:隱藏類
- Java 17 新特性:switch的模式匹配(Preview)
- Java 16 新特性:record類
- PyScript:讓Python在HTML中執行
- Java 14中對switch的增強,終於可以不寫break了
- Java 17中對switch的模式匹配增強
- Java 15 新特性:隱藏類