1.SpringApplication.run(AppConfig.class,args);執行流程中有refreshContext(context);這句話.spring
2.refreshContext(context);內部會解析咱們的配置類上的標籤.實現自動裝配功能的註解@EnableAutoConfigurationui
3.會解析@EnableAutoConfiguration這個註解裏面的@Import引入的配置類.AutoConfigurationImportSelectorget
4.AutoConfigurationImportSelector這個類中有這個方法.SpringFactoriesLoader.loadFactoryNames(getSpringFactoriesLoaderFactoryClass(), getBeanClassLoader());io
5.SpringFactoriesLoader.loadFactoryNames的做用就是讀取jar包中的/項目中的META-INF/spring.factories文件.class
6.spring.factories配置了自動裝配的類.好比:com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure配置
7.根據條件給咱們自動裝配Bean方法