Spring boot自动配置原理

自动配置原理

@SpringBootApplication
SpringBoot启动的时候加载主配置类
开启了自动配置功能,@EnableAutoConfiguration
点击,进入
Spring boot自动配置原理
@EnableAutoConfiguration
利用EnableAutoConfigurationImportSelector
给容器中导入一些组件
Spring boot自动配置原理
点击,进入
Spring boot自动配置原理
可以查看
selectImports()方法的内容
Spring boot自动配置原理
List configurations = getCandidateConfigurations(annotationMetadata, attributes);
获取候选的配置
点击,进入
Spring boot自动配置原理
SpringFactoriesLoader.loadFactoryNames()
扫描所有jar包类路径下 META‐INF/spring.factories
把扫描到的这些文件的内容包装成properties对象

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

将类路径下META-INF/spring.factories 里面
配置的所有EnableAutoConfiguration的值加入到了容器中
Spring boot自动配置原理
EnableAutoConfiguration
Spring boot自动配置原理

xxxAutoConfiguration

每一个这样的类,都是容器中的一个组件
加入到容器中,用他们来做自动配置

每一个自动配置类,进行自动配置功能