1. Introduction
mica-auto (Spring boot stater development tool) is a basic component in Spring cloud microservice framework Mica, used to generate some basic configurations of Spring boot starter.
2. Function
-
- Generate spring.factories.
- Generate spring-devtools.properties
- Generate FeignClient into spring.factories for Feign automatic configuration in mica-cloud.
- To generate java Spi configuration, you need to add @AutoService annotation.
annotation | spring.factories 或 Spi key |
@AutoContextInitializer | ApplicationContextInitializer |
@AutoListener | ApplicationListener |
@AutoRunListener | SpringApplicationRunListener |
@AutoEnvPostProcessor | EnvironmentPostProcessor |
@AutoFailureAnalyzer | FailureAnalyzer |
@AutoConfigImportFilter | AutoConfigurationImportFilter |
@AutoTemplateProvider | TemplateAvailabilityProvider |
@AutoEnableCircuitBreaker | EnableCircuitBreaker |
@AutoConfigDataLocationResolver | ConfigDataLocationResolver |
@AutoConfigDataLoader | ConfigDataLoader |
@Component | EnableAutoConfiguration |
@AutoIgnore | Ignore, do not generate to spring.factories |
@AutoService | java Spi generation configuration |
Three, change records
- Add AutoConfigDataLocationResolver.
- Add AutoConfigDataLoader
Four, use
Note: If you use Lombok in your project, please place the dependency of mica-auto behind Lombok.
4.1 maven
<dependency> <groupId>net.dreamlu</groupId> <artifactId>mica-auto</artifactId> <version>2.0.3</version> <scope>provided</scope> </dependency>
4.2 gradle >= 5.x
annotationProcessor("net.dreamlu:mica-auto:2.0.3")
4.3 gradle < 5.x
compileOnly "net.dreamlu:mica-auto:2.0.3"
4.4 java spi example:
- Add the annotation @AutoService to specify the Processor.class of the spi interface.
package foo.bar; import javax.annotation.processing.Processor; @AutoService(Processor.class) public class MyProcessor implements Processor { // … }
AutoService will automatically generate spi configuration file META-INF/services/javax.annotation.processing.Processor. content:
foo . bar . MyProcessor
Five, usage scenarios
- Spring boot starter is a powerful tool for development, which automatically generates spring.factories and spring-devtools.properties configuration.
- The sub-projects in the multi-module project are automatically configured when the package names are different (the main project is not recommended to add).
- The java spi extension automatically generates the configuration.
It is recommended to pay attention to Rumeng Technology Code Cloud: https://gitee.com/596392912 , more microservice core components are worth having.
Six, mica ecology
-
mica-auto (Spring boot starter): https://gitee.com/596392912/mica-auto
-
mica-weixin (spring boot starter of jfinal weixin): https://gitee.com/596392912/mica-weixin
-
mica-mqtt (mqtt component based on t-io implementation): https://gitee.com/596392912/mica-mqtt
-
Spring cloud microservice http2 solution (h2c): https://gitee.com/596392912/spring-cloud-java11