1.简介
spring框架在从配置类中读取bean定义时,会对一些注解进行处理
比如遇到@Configuration注解,需要读取配置类中@Bean注解的方法,定义为Bean,
遇到@Autowired注解,需要自动装配依赖。
这些都是通过BeanDefinitionRegistryPostProcessor、BeanPostProcessor等后处理器来实现的
1.1 AnnotatedBeanDefinitionReader
AnnotatedBeanDefinitionReader用来直接加载配置类,其构造函数中有:
public AnnotatedBeanDefinitionReader(BeanDefinitionRegistry registry, Environment environment) {
Assert.notNull(registry, "BeanDefinitionRegistry must not be null");
Assert.notNull(environment, "Environment must not be null");
this.registry = registry;
/* 条件评估 */
this.conditionEvaluator = new ConditionEvaluator(reg