SpringBoot 自动配置实现流程

x33g5p2x  于2021-12-13 转载在 Spring  
字(0.6k)|赞(0)|评价(0)|浏览(348)

(1)SpringBoot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfiguration。查看@SpringBootApplication

(2)查看@EnableAutoConfiguration,其作用是利用AutoConfigurationImportSelector给容器中导入一些组件。

(3)查看AutoConfigurationImportSelector,其中public String[] selectImports(AnnotationMetadata annotationMetadata)方法内

(4)查看 getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes),获取候选的配置,这个是扫描所有jar包类路径下"META-INF/spring.factories";

(5)然后把扫描到的这些文件包装成Properties对象。

(6)从properties中获取到EnableAutoConfiguration.class类名对应的值,然后把他们添加在容器中。

注:整个过程就是将类路径下"META-INF/spring.factories"里面配置的所有EnableAutoConfiguration的值加入到容器中。

相关文章