springboot自动装配原理简单分析

150 阅读1分钟

springboot自动装配原理简单分析(自动配置的核心是SPI机制)

话不多说上菜:接下来分为几步去分析

1: @SpringBootApplication自定义注解中配置注解简单分析

@ComponentScan :扫描组件的包

@EnableAutoConfiguration: 自动配置(重点)

@SpringBootConfiguration:配置类(@Configuration)

2:自动配置注解:@EnableAutoConfiguration简单分析

@Import输入注解中配置自动配置选择器AutoConfigurationImportSelector.class(ioc导入配置类)

3:自动配置选择器AutoConfigurationImportSelector简单分析

3.1输入口方法:selectImports(AnnotationMetadata annotationMetadata) 进入获取要加载的config配置文件的全包资源

3.2入口方法中核心调用链方法: AutoConfigurationImportSelector.AutoConfigurationEntry autoConfigurationEntry = this.getAutoConfigurationEntry(annotationMetadata);获取需要自动配置的文件:传入annotationMetadata注解元数据

3.3核心调用链方法中调用核心配置方法:getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes)

3.4:通过SpringFactoriesLoader.loadFactoryNames()方法记载配置信息

3.5:最后通过loadSpringFactories()方法进行读取配置信息。

3.5.1:这里通过什么方式获取到配置信息的:基于spl实现:classPath*扫描:读取META-INF/spring.factories

4:最后通过importSelectpr来动态加载扫描到的配置类资源