Skip to content
程序猿DD程序猿DD
主页
最新发布
Java新特性
玩转IDEA
旧版博客open in new window
社区交流open in new window

    Spring Boot Starter配置spring.factories的自动生成神器:mica-auto

    程序猿DD原创2022年5月24日
    • Spring Boot
    • 前沿资讯
    • Spring Boot
    大约 2 分钟

    此页内容
    • 开源项目:mica-auto
    • 使用mica-auto

    # Spring Boot Starter配置spring.factories的自动生成神器:mica-auto

    昨晚我们讲了Spring Boot 2.7开始不再推荐使用spring.factories了open in new window,今天早上公众号(程序猿DD)上也推了,然后收到了不少反馈。其中有个网友说:要维护两个文件,太麻烦了。

    作为一名优秀的程序员,当觉得麻烦的时候,第一反应就是要想办法偷懒!

    所以,今天就给大家讲讲怎么样轻松的维护这两个文件!

    # 开源项目:mica-auto

    为了解决维护麻烦的问题,这里要给大家推荐一个开源项目:mica-auto。不要看Star不多,DD用下来感觉还是非常好的。

    • GitHub地址:https://github.com/lets-mica/mica-autoopen in new window

    该项目的实现原理与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();
        }
    
    }
    

    完成上面配置之后,重新编译马上就可以看到文件生成成功了:

    本期视频:https://www.bilibili.com/video/BV19v4y1A7T1/open in new window

    如果您学习过程中如遇困难?可以加入我们超高质量的Spring技术交流群open in new window,参与交流与讨论,更好的学习与进步!更多Spring Boot教程可以点击直达!open in new window,欢迎收藏与转发支持!

    上次编辑于: 2022/5/25 02:26:17
    贡献者: dd
    © 2016 - 2022 didispace.com 版权所有
    沪ICP备14037150号-3
    Copyright © 2022 程序猿DD