**@Import({AutoConfigurationImportSelector.class})
springboot吧
全部回复
仅看楼主
level 1
:**将**AutoConfigurationImportSelector**这个类导入到spring容器中,**AutoConfigurationImportSelector**可以帮助springboot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器(ApplicationContext)中
继续研究**AutoConfigurationImportSelector**这个类,通过源码分析这个类中是通过selectImports这个方法告诉springboot都需要导入那些组件:
![image-20200119172227144](./images/image-20200119172227144.png)
**深入研究loadMetadata方法**
![image-20200119172325325](./images/image-20200119172325325.png)
**深入getCandidateConfigurations方法**
个方法中有一个重要方法loadFactoryNames,这个方法是让SpringFactoryLoader去加载一些组件的名字。
![image-20200119172418984](./images/image-20200119172418984.png)
继续点开loadFactory方法
```java
public static List<String>loadFactoryNames(Class<?> factoryClass, @nullable ClassLoaderclassLoader) {
//获取出入的键
String factoryClassName = factoryClass.getName();
return(List)loadSpringFactories(classLoader).getOrDefault(factoryClassName,Collections.emptyList());
}
private static Map<String, List<String>>loadSpringFactories(@Nullable ClassLoader classLoader) {
MultiValueMap<String, String> result =(MultiValueMap)cache.get(classLoader);
if (result != null) {
return result;
} else {
try {
这些内容,是从拉勾教育的《Java工程师高薪训练营》里学到的,课程内容非常全面,还有拉勾的内推大厂服务,推荐你也看看。
2020年06月23日 02点06分 1
1