Skip to content

Latest commit

 

History

History
107 lines (83 loc) · 5.55 KB

README_EN.md

File metadata and controls

107 lines (83 loc) · 5.55 KB

mica-auto SPI、Spring boot starter Development Tools

Java CI JAVA 8 mica-auto Maven Codacy Badge

Mica-auto is a basic component of the Spring Cloud microservices framework MICA, which is used to generate some basic configurations of the Spring Boot Starter.

English | 简体中文

Version Update Record

version

version spring boot version java version
3.1.4 3.x 17
2.3.5 1.x ~ 3.x 1.8

Principle

Mica Auto uses the Annotation Processor, which is not a new technology. It's been around since JDK 1.6. The Annotation Processor is a tool of javac that scans and processes annotations at compile time. Using the Annotation Processor, you can obtain information about annotations and annotated objects, and then automatically generate Java code based on annotations, eliminating manual writing and improving coding efficiency. Lombok is also famous for this technology.

Usage Scenarios

It is mainly used to avoid the inconsistency between the Spring Boot main project package and the subproject or submodule package, and avoid the problem that the package cannot be scanned. .Customize the Spring Boot starter. .Subprojects in a multi-module project (adding MICA-Auto to a master project is not recommended).

Functions

  • Automatically generate spring.factories, spring-devtools.properties configuration (spring Boot starter development tools).
  • Generate the FeignClient in the spring.factories for automated Feign configuration in the mica-cloud.
  • Generate the Java Spi configuration, you need to add the @AutoService annotation.
Annotation spring.factories or Spi key
@AutoContextInitializer ApplicationContextInitializer
@AutoListener ApplicationListener
@AutoRunListener SpringApplicationRunListener
@AutoEnvPostProcessor EnvironmentPostProcessor
@AutoFailureAnalyzer FailureAnalyzer
@AutoConfigImportFilter AutoConfigurationImportFilter
@AutoTemplateProvider TemplateAvailabilityProvider
@AutoEnableCircuitBreaker EnableCircuitBreaker
@AutoConfigDataLocationResolver ConfigDataLocationResolver
@AutoConfigDataLoader ConfigDataLoader
@AutoDatabaseInitializerDetector DatabaseInitializerDetector
@AutoDependsOnDatabaseInitializationDetector DependsOnDatabaseInitializationDetector
@Component EnableAutoConfiguration
@AutoIgnore Ignore and do not generate to spring.factories
@AutoService java Spi generates the configuration
Annotation aot.factories
@AotRuntimeHintsRegistrar RuntimeHintsRegistrar
@AotBeanRegistration BeanRegistrationAotProcessor
@AotBeanFactoryInitialization BeanFactoryInitializationAotProcessor

Usage

Note: If you are using Lombok in your project, place the mica-Auto dependency behind Lombok

maven

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

gradle >= 5.x

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

gradle < 5.x

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

Principle

Scan @component, automatically generate the corresponding configuration, and support composite annotations.

Mica Ecological

Open Source Licenses

LGPL(GNU Lesser General Public License)

The User’s Rights

Allow to introduce the source code in the form of free for study, graduation, corporate projects, private work, etc. Modify the code in special cases, but still want to close the source must be approved by the author. For reference, please specify: refer to mica-auto: https://github.com/lets-mica/mica-auto

References

WeChat Official Account

dreamlu