Spring-context-ConfigurationClassBeanDefinitionReader类

关于BeanDefinitionReader接口特性请看这里

注:ConfigurationClassBeanDefinitionReader修饰符是default,所以在我们自己的类中是提示不出来的,只在和它同包的其他类中使用

切记,这个类并不是BeanDefinitionReader接口的子类,虽然名字很像,以及里面的方法很像,这点,在ConfigurationClassBeanDefinitionReader类注释中有说明,它说BeanDefinitionReader接口是对Resource的操作,而ConfigurationClassBeanDefinitionReader是对configuration class的操作,而且BeanDefinitionReader很早很早之前就出现了

作用:将ConfigurationClass(模型类)变成BeanDefinition,注册到BeanDefinitionRegistry当中
方法解释
1.loadBeanDefinitionsForConfigurationClass
根据模型类的条件不同,所以转换成不同的BeanDefinition
2.loadBeanDefinitionsFromRegistrars

private void loadBeanDefinitionsFromRegistrars(Map<ImportBeanDefinitionRegistrar, AnnotationMetadata> registrars) {
		for (Map.Entry<ImportBeanDefinitionRegistrar, AnnotationMetadata> entry : registrars.entrySet()) {
			// entry.getValue()会获取到AspectJAutoProxyRegistrar类
			// 该类会判断EnableAspectJAutoProxy注解,若存在该注解,则创建AnnotationAwareAspectJAutoProxyCreator
			entry.getKey().registerBeanDefinitions(entry.getValue(), this.registry);
		}
	}

此处会判断ConfigurationClass类上是否有@EnableAspectJAutoProxy注解,如果有,则创建AnnotationAwareAspectJAutoProxyCreator类并且注入到容器中

时机:在ConfigurationClassPostProccessor的接口方法processConfigBeanDefinitions中,该方法中不但new了ConfigurationClassBeanDefinitionReader,并且调用ConfigurationClassBeanDefinitionReader的方法loadBeanDefinitions

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值