自动配置原理分析
2023-04-23 11:51:59 10 举报
AI智能生成
登录查看完整内容
SpringBoot 自动配置原理流程图
作者其他创作
大纲/内容
@Component
@Configuration
@SpringBootConfiguration
@Import({Registrar.class}) - 自动注册包
@AutoConfigurationPackage - 自动配置包
getAutoConfigurationEntry() - 获取自动配置的实体(调用的下边这个方法)
getSpringFactoriesLoaderFactoryClass() - 获取标注了 @EnableAutoConfiguration 注解的类
getCandidateConfigurations() - 获取候选的配置(调用的下边这个方法)
loadFactoryNames() - 获取所有的配置名(调用的下边这个方法)
问 : 为什么有些自动配置类没有生效,需要导入对应的启动器才能生效?答 : 自动配置类上有一个核心注解 : @ConditionalOnXXX(xxxxx)表示只有括号中的条件都满足才会自动导入
META-INF/spring.factories 文件在spring-boot-autoconfigure.jar 包中所有的自动配置类都在该文件中
classLoader.getResources(\"META-INF/spring.factories\") - 获取项目的资源文件
ClassLoader.getSystemResources(\"META-INF/spring.factories\") - 获取系统的资源文件
while 循环,遍历了所有的资源文件,遍历完成后,将其封装为 Properties ,以供使用
loadSpringFactories() - 加载
AutoConfigurationImportSelector - 自动导入选择器
@Import({AutoConfigurationImportSelector.class}) - 自动导入包的核心
@EnableAutoConfiguration - 自动导入包
@ComponentScan - 扫描当前主启动类同级的包
@SpringBootApplication
觉得不错,请点个赞吧,谢谢
自动配置原理分析
0 条评论
回复 删除
下一页