本文共 1097 字,大约阅读时间需要 3 分钟。
1.springboot启动的时候,从主方法启动
@ImportResource(locations = {"classpath:beans.xml"})*/@SpringBootApplicationpublic class SpringBoot01HelloworldQuickApplication { public static void main(String[] args) { SpringApplication.run(SpringBoot01HelloworldQuickApplication.class, args); }}
加载加载了@SpringBootApplication注解;@SpringBootApplication注解,开启了一个@EnableAutoConfiguration注解的自动配置功能、
打开@EnableAutoConfiguration注解,里面利EnableAutoConfigurationImportSelector选择器给Spring容器中来导入一些组件。
打EnableAutoConfigurationImportSelector选择器查看究竟导入哪些组件?查看selectImports()函数-----
1.在selectImports这个方法里面主要有个 configurations,并且这个configurations最终会被返回。
这个configurations它是获取候选的配置。Listconfigurations = getCandidateConfigurations(annotationMetadata,attributes);
2..l利用loadFactoryNames方法从类路径下得到一个资源
即扫描javajar包类路径下的“META-INF/spring.factories”这个文件 3. 扫描到的这些文件,最终把这些文件整成一个properties对象**4.**然后它从properties对象里边获取一些值,把这些获取到的值来加载我们最终要返回的这个结果,这个结果就是我们要交给Spring容器中的所有组件,这相当于这factoryClassName就是我们传过来的Class的这个类名。
5传过来的Class是调用这个
getSpringFactoriesLoaderFactoryClass()这个方法得到从properties中获取到EnableAutoConfiguration.class类名对应的值
转载地址:http://hqthn.baihongyu.com/