【黑科技】mica-auto 2.0.3发布增强 spring boot 2.4 的支持

JAVA架构日记

共 2279字,需浏览 5分钟

 ·

2021-01-06 21:17

一、简介

mica-auto (Spring boot stater开发利器)是 Spring cloud 微服务框架 Mica 中的一个基础组件,用来生成 Spring boot starter 的一些基础配置。

二、原理

mica auto 采用 Annotation Processor,它不是什么新技术,在 jdk 1.6 就存在了。Annotation Processor 是 javac 的一个工具,它用来在编译时扫描和处理注解。通过 Annotation Processor 可以获取到注解和被注解对象的相关信息,然后根据注解自动生成Java代码,省去了手动编写,提高了编码效率。大名鼎鼎的 Lombok 也是采用的该技术。

三、功能

  • 自动生成 spring.factoriesspring-devtools.properties 配置。
  • 生成 FeignClient 到 spring.factories 中,供 mica-cloud 中完成 Feign 自动化配置。
  • 生成 java spi 配置,需要添加 @AutoService 注解。
注解spring.factories 或 Spi key
@AutoContextInitializerApplicationContextInitializer
@AutoListenerApplicationListener
@AutoRunListenerSpringApplicationRunListener
@AutoEnvPostProcessorEnvironmentPostProcessor
@AutoFailureAnalyzerFailureAnalyzer
@AutoConfigImportFilterAutoConfigurationImportFilter
@AutoTemplateProviderTemplateAvailabilityProvider
@AutoEnableCircuitBreakerEnableCircuitBreaker
@AutoConfigDataLocationResolverConfigDataLocationResolver
@AutoConfigDataLoaderConfigDataLoader
@ComponentEnableAutoConfiguration
@AutoIgnore忽略,不生成到 spring.factories
@AutoService生成 java spi 配置

四、2.x 更新记录

  • 添加 AutoConfigDataLocationResolver。
  • 添加 AutoConfigDataLoader。
  • 添加 AutoEnableCircuitBreaker。
  • 升级 spring boot 到 2.4.1(非强制依赖,无兼容性问题)。

五、使用

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

5.1 maven

<dependency>
  <groupId>net.dreamlugroupId>
  <artifactId>mica-autoartifactId>
  <version>2.0.3version>
  <scope>providedscope>
dependency>

5.2 gradle >= 5.x

annotationProcessor("net.dreamlu:mica-auto:2.0.3")

5.3 gradle < 5.x

compileOnly "net.dreamlu:mica-auto:2.0.3"

5.4 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

六、mica 生态

  • mica (Spring cloud 微服务组件集): https://gitee.com/596392912/mica

  • mica-auto (Spring boot starter 利器): https://gitee.com/596392912/mica-auto

  • mica-weixin(jfinal weixin 的 spring boot starter):https://gitee.com/596392912/mica-weixin

  • mica-mqtt(基于 t-io 实现的 mqtt组件):https://gitee.com/596392912/mica-mqtt

  • Spring cloud 微服务内 http2 方案(h2c): https://gitee.com/596392912/spring-cloud-java11

关注如梦技术码云:https://gitee.com/596392912 ,更多 java 开源组件值得拥有。

浏览 18
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报