SpringBoot怎样完成自动配置

SpringBoot怎样完成自动配置的?

1、自动配置原理:

1)、SpringBoot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration

2)、@EnableAutoConfiguration 作用:

利用EnableAutoConfigurationImportSelector给容器中导入一些组件?

可以查看selectImports()方法的内容;

List configurations = getCandidateConfigurations(annotationMetadata, attributes);

获取候选的配置将 类路径下 META-INF/spring.factories 里面配置的所有EnableAutoConfiguration的值加入到了容器中;SpringFactoriesLoader.loadFactoryNames()扫描所有jar包类路径下 META‐INF/spring.factories把扫描到的这些文件的内容包装成properties对象从properties中获取到EnableAutoConfiguration.class类(类名)对应的值,然后把他们添加在容器中。


2、总结:

Spring Boot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们进行自动配置工作;


解析:

在SpringBoot的主程序类中必须要有注解@SpringBootApplication,在这个注解中有


开启自动配置注解,继续往下


在@EnableAutoConfiguration注解中导入了一个组件 AutoConfigurationImportSelector



自动配置的AutoConfiguration都是在文件spring.factories中自动配置的。