{"repo":"lets-mica/mica-auto","free":true,"listed":false,"github":"https://github.com/lets-mica/mica-auto","clone":"git clone https://github.com/lets-mica/mica-auto.git","description":"mica-auto 使用注解自动生成 java spi 和 Spring boot 的配置。🔝🔝 记得右上角点个star 关注更新！","language":"Java","stars":204,"topics":["spring","spring-boot","spring-cloud","mica-auto","java-spi","java"],"license":"LGPL-3.0","category":"api-integrations-sdks","readme_excerpt":"mica-auto SPI、Spring boot starter 利器 mica-auto 是 Spring cloud 微服务框架 Mica 中的一个基础组件，用来生成 Spring boot starter 的一些基础配置。 ✨✨✨推广： BladeX 物联网平台 ✨✨✨iot.bladex.cn ------ 简体中文 English 版本更新记录 版本说明 version spring boot version java version --------- ------------------- -------------- 4.0.1 4.x 17 3.1.6 3.x 17 2.3.5 1.x 3.x 1.8 原理 mica auto 采用 Annotation Processor，她不是什么新技术，在 jdk 1.6 就存在了。 Annotation Processor 是 javac 的一个工具，它用来在编译时扫描和处理注解。通过 Annotation Processor 可以获取到注解和被注解对象的相关信息，然后根据注解自动生成Java代码，省去了手动编写，提高了编码效率。大名鼎鼎的 Lombok 也是采用的该技术。 使用场景 主要是用来避免 Spring boot 主项目包同 子项目 或者 子模块 包不一致，避免包扫描不到的问题。 - 自定义 spring boot starter 。 - 多模块项目中的 子项目 （不建议主项目添加 mica-auto ）。 功能 - 自动生成 spring.factories、spring-devtools.properties 配置（Spring boot starter 开发利器）。 - 生成 FeignClient 到 spring.factories 中，供 mica-cloud 中完成 Feign 自动化配置。 - 生成 java spi 配置，需要添加 @AutoService 注解。 注解 spring.factories 或 Spi key ------------------------------- ------------------------------- @AutoContextInitializer ApplicationContextInitializer @AutoListener ApplicationListener @AutoRunListener SpringApplicationRunListener @AutoEnvPostProcessor EnvironmentPostProcessor @AutoFailureAnalyzer FailureAnalyzer @AutoConfigImportFilter AutoConfigurationImportFilter @AutoTemplateProvider TemplateAvailabilityProvider @AutoEnableCircuitBreaker EnableCircuitBreaker @AutoConfigDataLocationResolver ConfigDataLocationResolver @AutoConfigDataLoader ConfigDataLoader @AutoDatabaseInitializerDetector DatabaseInitializerDetector @AutoDependsOnDatabaseInitialization","default_branch":null,"files":null,"tree":[],"storefront":"/r/lets-mica","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/lets-mica/mica-auto/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}