Mica 官方网站

vuePress-theme-reco 如梦技术    2021
Mica 官方网站
文档
组件集
VIP
博文
友情链接
关于
GitHub

如梦技术

0

Article

9

Tag

文档
组件集
VIP
博文
友情链接
关于
GitHub
  • 组件集

    • mica-auto
    • mica-http
    • mica-spider
    • mica-redis
    • mica-captcha
    • mica-ip2region
    • mica-jobs
    • mica-swagger
    • mica-laytpl
    • mica-caffeine
    • mica-logging
    • mica-qrcode

vuePress-theme-reco 如梦技术    2021

mica-auto 使用文档


如梦技术

# mica-auto 使用文档

mica-auto 采用 Annotation Processor 技术,自动生成 java spi 和 Spring boot starter 的配置。

# 功能

  1. 生成 spring.factories。
  2. 生成 spring-devtools.properties
  3. 生成 FeignClient 到 spring.factories 中,供 mica-cloud 中完成 Feign 自动化配置。
  4. 生成 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 配置

# 依赖

# maven

<dependency>
  <groupId>net.dreamlu</groupId>
  <artifactId>mica-auto</artifactId>
  <version>${version}</version>
  <scope>provided</scope>
</dependency>

# gradle >= 5.x

annotationProcessor("net.dreamlu:mica-auto:${version}")

# gradle < 5.x

compileOnly "net.dreamlu:mica-auto:${version}"

注意: 如果你项目中使用了 Lombok 请将 mica-auto 的依赖放置到 Lombok 后面。

# 示例

# java spi

  • 添加注解 @AutoService 指定 spi 接口 Processor.class。
package foo.bar;

import javax.annotation.processing.Processor;

@AutoService(Processor.class)  
public class MyProcessor implements Processor {
    // …
}
  • @AutoService 将会自动生成 spi 的配置文件 META-INF/services/javax.annotation.processing.Processor 内容如下:
foo.bar.MyProcessor

# Spring boot starter

  • 组合有 @Component 的注解,例如:@Configuration,其他的类似 ApplicationContextInitializer 需要自行添加注解,详见 mica-auto 注解说明。
/**
 * 自动配置
 *
 * @author l.cm
 */
@Configuration(proxyBeanMethods = false)
public class MicaAutoConfiguration {

	@Bean
	public SpringContextUtil springUtils() {
		return new SpringContextUtil();
	}

}
  • 将会生成 META-INF/spring.factories 文件,避免手动编写或者修改该文件,内容如下:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  net.dreamlu.mica.config.MicaAutoConfiguration

# 微信 vs 公众号

如梦技术

精彩内容每日推荐!!!

编辑此页面
更新时间: 9/8/2020, 8:42:56 PM
  • 功能
  • 使用场景
  • 原理
  • 注解说明
  • 依赖
  • maven
  • gradle >= 5.x
  • gradle < 5.x
  • 示例
  • java spi
  • Spring boot starter
  • 微信 vs 公众号