@EnableAutoConfiguration 自动装配的注解
当spring容器加载中,会调用
invokeBeanFactoryPostProcessors 这里会去读取beanDefined各种加载方法,自动装配则使用了@import注解实现调用AutoConfigureImportSeletor 的方法
selectImports
方法里面逻辑是 加载spring.facotories 文件中键值为
EnableAutoConfiguration的值列表,这些值对应一系列的AutoConfiguture类。
这些AutoConfiguture类中根据条件是否要加载某个功能,条件判断可能会有是否引用了架包,是否含有某些配置项等等
实例化bean的时候,再去调用各种解析器判断是否符合条件的bean,不符合直接跳过
ConditionEvaluator
类处理match
方法-
ConfigurationClassPostProcessor
的processConfigBeanDefinitions
-
ConfigurationClassParser
的parse
方法 -
ConfigurationClassBeanDefinitionReader
的loadBeanDefinitions
方法
每个配置类都会有条件注解 @Condition***