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配置

这样就能对比自动配置的好处了

 

posted @ 2024-06-14 14:43  $YX$  阅读(21)  评论(0编辑  收藏  举报