Springboot自动配置流程
2022-02-11 16:27:24 28 举报
Springboot自动配置流程主要包括以下几个步骤:首先,Springboot启动时会扫描项目中的类,找到带有@Configuration注解的类;然后,根据@Conditional注解的条件判断,决定是否加载这个配置类;接着,Springboot会根据@Bean注解,将这个类中的实例方法返回的对象注册为Spring容器的bean;最后,Springboot会将这些bean注入到需要的地方。这个过程是自动的,无需手动配置,大大提高了开发效率。同时,Springboot还提供了许多预设的自动配置类,可以满足大部分项目的需求。
作者其他创作
大纲/内容
getAutoConfigurationEntry获取所有的有效的自动配置类
classLoader.getResources
.....
1
2
AutoConfigurationImportSelector implements DeferredImportSelector
主要是将自动配置类进行排序根据@Order、@AutoConfigureBefore、@AutoConfigureAfter、排序
No
org.springframework.boot.autoconfigure.EnableAutoConfiguration
调用
返回
getSpringFactoriesLoaderFactoryClass()
etConfigurationClassFilter().filter(configurations);根据pom依赖中添加starter过滤出来的有效配置类
这些类我们就称之为“自动配置类”他们就是帮助我们整合第三方库做的一些默认配置
factoryTypeName
@SpringBootApplication入口
1、可以理解成获取2、可以理解成排序
DeferredImportSelector的工作原理
AutoConfigurationGroup.process()
getOrDefault根据EnableAutoConfiguration过滤
点击@EnableAutoConfiguration
@Import(AutoConfigurationImportSelector.class)
执行AutoConfigurationImportSelector.selectImports方法返回一个数组String[],将数组中的完整类名注册为Bean
以这个完整类做过滤,获取所有的自动配置类
会去所有的jar包中和类路径中读取这个文件
Yes
就拿到了所有的自动配置类
loadSpringFactories去读取一个用来存放配置类的文件
Group.selectImports()
@EnableAutoConfiguration启动自动配置,会自动扫描所以配置类,扫描到并且满足条件才会生效@SpringBootConfiguration@ComponentScan
loadFactoryNames
有没有实现重新实现DeferredImportSelector这个类里面的getImportGroup方法
getCandidateConfigurations获取所有的配置类130个
重新实现了需要返回一个自定义的且实现了DeferredImportSelector.Group的类(AutoConfigurationGroup)
0 条评论
下一页