一、简介

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 注解,
image.png
我们可以看到它组合了 @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 配置

image.png

4.2 新的 AutoConfiguration.imports 配置

image.png

使用 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 ,更多微服务核心组件值得拥有。

六、关注我们

mica-auto 2.3.0 发布,支持 Spring boot 2.7.0 新特性 @AutoConfiguration - 图4

扫描上面二维码,更多精彩内容每天推荐!