一、简介
mica-auto (Spring boot stater开发利器)用来生成 Spring boot starter 配置文件,是 Spring cloud 微服务框架 Mica 中的一个基础组件,
mica auto 采用 Annotation Processor,她不是什么新技术,在 jdk 1.6 就存在了。 Annotation Processor 是 javac 的一个工具,它用来在编译时扫描和处理注解。通过 Annotation Processor 可以获取到注解和被注解对象的相关信息,然后根据注解自动生成Java代码,省去了手动编写,提高了编码效率。大名鼎鼎的 Lombok 也是采用的该技术。
二、功能
- 生成
spring.factories
。 - 支持 Spring boot 2.7.x 新增的 AutoConfiguration 注解,生成到新的 AutoConfiguration.imports 配置中。
- 生成
spring-devtools.properties
。 - 生成 java Spi 配置,需要添加
@AutoService
注解。
三、更新记录
- ✨ 支持 Spring boot 2.7.0 新特性 @AutoConfiguration。
- ⬆️ 升级 Spring boot 到 2.7.0
注意:mica-auto 并不强制依赖 Spring boot,仅仅是组合了 spring-boot-configuration-processor
依赖,方便使用。mica-auto 2.3.0 理论上支持 Spring boot 所有版本。
四、关于 Spring boot 2.7.0 @AutoConfiguration
4.1 @AutoConfiguration 注解
Spring boot 2.7.0 新增 @AutoConfiguration 注解,它用来替换 @Configuration 注解,
我们可以看到它组合了 @Configuration(默认 proxyBeanMethods = false
� 配置类不进行代理,可节省资源另外对 GraalVM 更加友好)、@AutoConfigureAfter 和 @AutoConfigureBefore 方便使用。
另外 Spring boot 2.7.0 开始推荐使用 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
替换 spring.factories
中的 EnableAutoConfiguration
配置。
4.1 老的 spring.factories EnableAutoConfiguration 配置
4.2 新的 AutoConfiguration.imports 配置
使用 mica-auto 2.3.0 在 Spring boot 2.7.x 的配置类中如果使用 @AutoConfiguration
注解就会自动生成到新的 AutoConfiguration.imports 配置中,如果任然使用的是老的 @Configuration
则任然会生成到 spring.factories
中。
五、使用场景
- Spring boot starter 开发利器,自动生成 spring.factories、spring-devtools.properties 配置。
- 多模块项目中的子项目,包名不同时的自动配置(主项目不建议添加)。
- java spi 扩展自动生成配置。
建议关注如梦技术码云:https://gitee.com/596392912 ,更多微服务核心组件值得拥有。
六、关注我们
扫描上面二维码,更多精彩内容每天推荐!