代码走向
入口类
@SpringBootApplication ->
@EnableAutoConfiguration ->
@Import -> AutoConfigurationImportSelector

自动装配的就是根据这个 DeferredImportSelector 这个类实现的。DeferredImportSelector继承至importSelector
ImportSelector与DeferredImportSelector的作用
@Import注解是将指定的Bean加入到IOC容器之中进行管理,ImportSelector接口只有一个selectImports方法,,可以读取annotation的属性来决定要加载哪些Configuration该方法将返回一个数组,也就是类实例名称 。简单来说就是spring提供一个根据 类名称 数组批量注册到 spring 容器中的方法
selectImports() - > getAutoConfigurationEntry() - > getCandidateConfigurations() ->loadFactoryNames()->loadSpringFactories
扫描 jar 包中的 META-INF/spring.factories文件中的 配置的 接口类 导入到到容器中,自动配置类就生效,帮我们进行自动配置工作。以前我们需要自己配置的东西,自动配置类都帮我们完成了。