spring源码解析之注解配置后处理器对@Configuration、@Autowired、@Value、@Inject、@PreDestroy、@PostConstruct等注解的处理

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(registry, environment, null);
		/* 为bean工厂添加注解配置后处理器,处理Configuration等注解 */
		AnnotationConfigUtils.registerAnnotationConfigProcessors(this.registry);
	}

其中,AnnotationCon

你可能感兴趣的:(#,spring,money,spring,spring,boot,java,ioc,bean)