1、什么是自动装配
自动装配就是把别人(官方)写好的config配置类加载到spring容器,然后根据这个配置类生成一些项目需要的bean对象。
(小声逼逼:就像我们自己在项目了写的config配置类一样的,只不过这个是别人写好的,你什么都不用管)
2、自动装配的开关在哪里
@SpringBootApplication
|--@EnableAutoConfiguration
|--@Import({AutoConfigurationImportSelector.class})
在@SpringBootApplication
注解里的@EnableAutoConfiguration
用@Import
注解导入了一AutoConfigurationImportSelector.class
类,这个类的selectImports
方法会扫描我们类路径下的一个spring.factories文件(里面装的是很多官方写好的自动配置类的全限定名),然后返回这些类的名字。
-
selectImports方法如下:
public String[] selectImports(AnnotationMetadata annotationMetadata) {
if (!this.isEnabled(annotationMetadata)) {
return NO_IMPORTS;
} else {
AutoConfigurationImportSelector.AutoConfigurationEntry autoConfigurationEntry = this.getAutoConfigurationEntry(annotationMetadata);
return StringUtils.toStringArray(autoConfigurationEntry.getConfigurations());
}
} -
spring.factories文件的位置如下: