:**將**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 loadFactoryNames(Class factoryClass,
@Nullable ClassLoader classLoader) { //獲取出入的鍵 String factoryClassName = factoryClass.getName(); return (List)loadSpringFactories(classLoader).getOrDefault(factoryClassName, Collections.emptyList()); } private static Map> loadSpringFactories(
@Nullable ClassLoader classLoader) { MultiValueMap result = (MultiValueMap)cache.get(classLoader); if (result != null) { return result; } else { try { 這些內容,是從拉勾教育的《Java工程師高薪訓練營》裏學到的,課程內容很是全面,還有拉勾的內推大廠服務,推薦你也看看。