springboot自动配置原理
2023-10-23 02:39:12 0 举报
springboot自动配置原理,从@SpringBootApplication注解出发
作者其他创作
大纲/内容
执行Group的process
2
No
return 实现了DeferredImportSelector.Group的类
Yes
loadFactoryNames
@Import(AutoConfigurationImportSelector.class)
1
DeferredImportSelector
getAutoConfigurationEntry
拿到了很多自动配置类,但是并不是所有的自动配置类都需要注入。它会根据需要按需注入。具体方法从getAutoConfigurationEntry中的filter方法往下一层一层找。
执行自己的selectImports
getCandidateConfigurations
load
springBoot2.7开始不一样了load方法用来加载自动配置类,loadFactoryNames加载spring.factories中的配置。load方法加载org.springframework.boot.autoconfigure.AutoConfiguration.imports文件中的自动配置类
AutoConfigurationImportSelector是否重写了getImportGroup
获取所有自动配置类
处理完后只剩需要的自动配置类
执行Group的ImportSelector
其实一开始就已经加载过loadFactoryNames方法,在new SpringApplication构造方法的时候就执行了。但是load方法是按照上述流程到现在才执行到。
getCandidateConfigurations执行完之后
readAutoConfigurations
@EnableAutoConfiguration
@SpringBootApplication
AutoConfigurationImportSelector实现了DeferredImportSelector
进行处理过滤,返回需要的自动配置类
0 条评论
下一页