Spring Boot Starter配置spring.factories的自動生成神器:mica-auto
昨晚我們講了 Spring Boot 2.7開始不再推薦使用spring.factories了 ,今天早上公眾號(程式猿DD)上也推了,然後收到了不少反饋。其中有個網友說:要維護兩個檔案,太麻煩了。
作為一名優秀的程式設計師,當覺得麻煩的時候,第一反應就是要想辦法偷懶!
所以,今天就給大家講講怎麼樣輕鬆的維護這兩個檔案!
開源專案:mica-auto
為了解決維護麻煩的問題,這裡要給大家推薦一個開源專案: mica-auto 。不要看Star不多,DD用下來感覺還是非常好的。
- GitHub地址: http://github.com/lets-mica/mica-auto
該專案的實現原理與Lombok類似,利用Java 6就開始支援的Annotation Processor,在編譯期掃描註解和處理註解。這裡mica-auto的主要解決問題是為Spring Boot自動生成 spring.factories
、 spring-devtools.properties
配置。
目前最新的2.3版本也支援Spring Boot 2.7之後推薦使用的 org.springframework.boot.autoconfigure.AutoConfiguration.imports
配置檔案的自動生成。
使用mica-auto
下面以我自己的專案為例,看看怎麼一步步整合:
第1步:pom.xml中加入依賴(注意,如果有lombok的話,要放到lombok後面)
<dependency> <groupId>net.dreamlu</groupId> <artifactId>mica-auto</artifactId> <version>2.3.0</version> <scope>provided</scope> </dependency>
第2步:替換一些老的自動化配置註解,比如,我這裡用 @AutoConfiguration
替換了老的 @Configuration
,這樣才能正常的生成出 org.springframework.boot.autoconfigure.AutoConfiguration.imports
配置,不然用老的配置註解的話,只會自動生成 spring.factories
@AutoConfiguration @EnableConfigurationProperties(SwaggerProperties.class) @ConditionalOnProperty(value = "springfox.documentation.enabled", havingValue = "true", matchIfMissing = true) @Import({SwaggerUiConfiguration.class, SwaggerAuthorizationConfiguration.class, DocketConfiguration.class}) public class SwaggerAutoConfiguration { @Bean public DocketBeanFactoryPostProcessor docketBeanFactoryPostProcessor() { return new DocketBeanFactoryPostProcessor(); } }
完成上面配置之後,重新編譯馬上就可以看到檔案生成成功了:
本期影片: http://www.bilibili.com/video/BV19v4y1A7T1/
如果您學習過程中如遇困難?可以加入我們超高質量的Spring技術交流群,參與交流與討論,更好的學習與進步!更多 Spring Boot教程可以點選直達! ,歡迎收藏與轉發支援!
- 重磅!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 新特性:隱藏類