Spring boot 自动装配原理

448 阅读1分钟

代码走向

入口类

@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文件中的 配置的 接口类 导入到到容器中,自动配置类就生效,帮我们进行自动配置工作。以前我们需要自己配置的东西,自动配置类都帮我们完成了。