自动配置原理

SpringBoot 自动配置原理:

1.springboot启动的时候,从主方法启动

@ImportResource(locations = {"classpath:beans.xml"})*/
@SpringBootApplication
public class SpringBoot01HelloworldQuickApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringBoot01HelloworldQuickApplication.class, args);
	}

}

加载加载了@SpringBootApplication注解;@SpringBootApplication注解,开启了一个@EnableAutoConfiguration注解的自动配置功能、

打开@EnableAutoConfiguration注解,里面利EnableAutoConfigurationImportSelector选择器给Spring容器中来导入一些组件。
在这里插入图片描述
打EnableAutoConfigurationImportSelector选择器查看究竟导入哪些组件?
在这里插入图片描述

查看selectImports()函数-----

1.在selectImports这个方法里面主要有个 configurations,并且这个configurations最终会被返回。
这个configurations它是获取候选的配置。

List<String> configurations =  getCandidateConfigurations(annotationMetadata,attributes);

2..l利用loadFactoryNames方法从类路径下得到一个资源
在这里插入图片描述

在这里插入图片描述
即扫描javajar包类路径下的“META-INF/spring.factories”这个文件
3. 扫描到的这些文件,最终把这些文件整成一个properties对象

**4.**然后它从properties对象里边获取一些值,把这些获取到的值来加载我们最终要返回的这个结果,这个结果就是我们要交给Spring容器中的所有组件,这相当于这factoryClassName就是我们传过来的Class的这个类名。

5传过来的Class是调用这个

getSpringFactoriesLoaderFactoryClass()这个方法得到从properties中获取到EnableAutoConfiguration.class类名对应的值

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页