mica组件集
# mica-auto
应用场景:
子项目要被加载,一般会写在/META-INF/spring.factories
里面写明相关的类,用了mica-auto
, 只需加上它的注解即可自动添加进去。
<!-- 添加到lombok之后 -->
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-auto</artifactId>
<version>2.1.0</version>
<scope>provided</scope>
</dependency>
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
mica-auto
采用 Annotation Processor
技术,自动生成 java spi
和 Spring boot starter
的配置。
将子项目打包时,会自动将
@Configuration
注解的类,添加到spring.factories当中。
# 功能
- 生成
spring.factories
。 - 生成
spring-devtools.properties
- 生成
FeignClient
到spring.factories
中,供mica-cloud
中完成Feign
自动化配置。 - 生成
java spi
配置,需要添加@AutoService
注解。
# 使用场景
主要是用来避免 Spring boot 主项目包同 子项目
或者子模块
包不一致,避免包扫描不到的问题。
spring boot starter
利器,自动生成spring.factories
配置。- 多模块项目中的
子项目
(不建议主项目添加mica-auto
)。
# 原理
扫描对应的注解,自动生成相应的配置,支持组合注解。
# 注解说明
注解 | 生成的 spring.factories 或 spi key |
---|---|
@AutoContextInitializer | ApplicationContextInitializer |
@AutoListener | ApplicationListener |
@AutoRunListener | SpringApplicationRunListener |
@AutoEnvPostProcessor | EnvironmentPostProcessor |
@AutoFailureAnalyzer | FailureAnalyzer |
@Component | EnableAutoConfiguration |
@AutoIgnore | 忽略,不生成到 spring.factories |
@AutoService | 生成 java spi 配置 |
参考文档:
mica-auto 使用文档 | 如梦技术 (dreamlu.net) (opens new window)
Google Auto: https://github.com/google/auto
Spring 5 - spring-context-indexer: https://github.com/spring-projects/spring-framework/tree/main/spring-context-indexer