赞
踩
英文是Auto-Configuration:
英文Configuration Class:
广义的“配置类”:被注解@Component直接或间接修饰的某个类,即我们常说的Spring组件,其中包括了@Configuration类。
狭义的“配置类”:特指被注解@Configuration所修饰的某个类,又称为@Configuration类。
实例:Redis的自动配置
示例一:注解@Import导入普通类
示例二:注解@Import导入接口ImportSelector实现类
示例三:导入接口ImportBeanDefinitionRegistrar实现类
SpringFactories机制
SpringFactories机制
它的核心逻辑是从classpath中读取到所有Jar包中的配置文件META-IF/spring.factories, 然后根据指定的key从配置文件中解析出对应的值。
其中getAutoConfigurationEntry是自动配置的入口。整个逻辑也不复杂,总共是5步:
我们再着重看一下方法getCandidateConfigurations,这是基于SpringFactories机制来获取第三方Jar包中所有自动配置类的方法,注意到从配置文件获取自动配置类时,使用的类是类EnableAutoConfiguration的全限定名。
代码看起来不太直观,我们使用一个动画来总结一下AutoConfigurationSelector的实现流程:
@Conditional,是来自Spring框架的一个注解:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。