SpringBoot的自动配置原理
2020-05-12 22:23:17 91 举报
SpringBoot自动装配
作者其他创作
大纲/内容
@Import({AutoConfigurationImportSelector.class})自动导入包的核心
@Component
@SpringBootConfiguration
思考:这么多自动配置为什么有的没有生效,需要导入对应的start才能有作用
子注解
自动配置原理
@Import({Registrar.class})自动注册包
该方法调用了loadFactoryNames(font color=\"#009900\
导入的类:自动导入选择器AutoConfigurationImportSelector
@SpringBootApplication
因为:在没有生效的配置类上存在一个注解@ConditononXXX如果这里xxx的条件都被满足,那么才会生效,没有满足就失效
@AutoConfigurationPackage
该方法里调用了方法:getCandidateConfigurations目的:获取候选的配置
\"META-INF/spring.factories\"); 的位置:所有的自动配置类都在这里了
上述调用了loadSpringFactories(classLoader)目的:获取项目资源;获取系统资源Enumeration<URL> urls = classLoader != null ?classLoader.getResources(\"META-INF/spring.factories\") : ClassLoader.getSystemResources(\"META-INF/spring.factories\");之后将遍历urls,将获取到的资源封装为Properties供我们使用while(urls.hasMoreElements()) { URL url = (URL)urls.nextElement(); UrlResource resource = new UrlResource(url); Properties properties = PropertiesLoaderUtils.loadProperties(resource);}
类里有个方法:getAutoConfigurationEntry作用:获得自动配置实体
@Configuration
@EnableAutoConfiguration
getSpringFactoriesLoaderFactoryClass()return EnableAutoConfiguration.class;标注了EnableAutoConfiguration这个注解的类
0 条评论
下一页