SpringBoot自动装配底层是如何找到spring.factories文件的
1.spring的自动装配机制是通过spring-boot-autoconfiguration包下的spring.factories文件来实现的
但是这个自动装配具体是怎么一步一步实现的,过程具体如下:
1.springboot启动入口都有一个@SpringBootApplication注解,点进去看一下
2.发现了他里面包括了3个注解
1.@SpringBootConfiguration: 标记这个类为配置类
2.@EnableAutoConfiguration:启动自动配置
3.@ComponentScan:组件扫描
3.重点关注@EnableAutoConfiguration,这个注解是启动自动配置的关键,点开来看一下
4.发现它里面有一个@Import注解,导入了AutoConfigurationImportSelector这个类,点进去这个类看一下,重点看selectImports方法大概意思应该是
是否启动了annotationMetadata(应该是是否启动了自动配置),启动了就走了下面的这个方法,getAutoConfigurationEntry(),点进去看看
5.找到关键词configurations,是从getConfigurationClassFilter()方法里面来的,点进去看看
6.这个方法的关键词就是filters,所以继续看这个getAutoConfigurationImportFilters()
7.发现返回的filters是这个东西,SpringFactoriesLoader,点开看看
8.定义在了这里
9.最后,我的这个springboot的版本是
贴一张spring.factories的图,他把能想到的配置类都提前写好了,放在了这个里面,加载的时候就直接加载了,xml就不用写了,顺便在贴一张不是springboot的项目,里面的特别多的xml配置
这样就能对比自动配置的好处了