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