自动配置原理分析
2020-12-21 19:00:27 0 举报
AI智能生成
springboot原理初探流程图
作者其他创作
大纲/内容
@SpringBootApplication
@SpringBootConfiguration
@Configuration
@Component
@EnableAutoConfiguration 自动导入包
@AutoConfigurationPackage
@Import(AutoConfigurationPackages.Registrar.class) 自动注册包
@Import(AutoConfigurationImportSelector.class) 自动导入包的核心
AutoConfigurationImportSelector 自动导入选择器,
选择了什么东西
选择了什么东西
getAutoConfigurationEntry() 获得自动配置的实体
getCandidateConfigurations() 获取候选的配置
//标注了EnableAutoConfiguration注解的类
protected Class<?> getSpringFactoriesLoaderFactoryClass() {
return EnableAutoConfiguration.class;
}
protected Class<?> getSpringFactoriesLoaderFactoryClass() {
return EnableAutoConfiguration.class;
}
public static List<String> loadFactoryNames(} 获取所有的加载配置
loadSpringFactories();
获取资源: Enumeration urls = classLoader.getResources("META-INF/spring.factories");
spring-boot-autoconfigure-2.4.1.jar
META-INF
spring.factories:所有的自动配置类都在这里了
思考:这么多自动配置为什么没有生效,是因为没有导入start启动器
核心注解:@ConditionalOnXXXX,如果这里面的条件都满足,才会生效
从这些资源中遍历了所有的nextElement(资源配置),遍历完成之后,封装为properties供我们使用
@ComponentScan 扫描当前主启动类同级的包

收藏

收藏
0 条评论
下一页