6.BeanDefinitionRegistyPostProcessor接口的应用
上篇文章讲了容器加载过程中会对实现了BeanDefinitionRegistyPostProcessor接口的调用,现在讲一下BeanDefinitionRegistyPostProcessor接口具体的应用,主要是对BeanDefinition的进行增删改操作。
1.创建一个类不加任何注解,也不在xml进行配置

spring.xml

通过前面所学的知道,肯定是无法对该类进行实例化,因为没有这个类的BeanDefinition,进行测试如下:

如果我们想对对这样一个没有@Component注解也没有进行xml配置的一个类进行实例化,该怎么办,这个时候我们就可以利用BeanDefinitionRegistyPostProcessor,完成对该类BeanDefinition的增加,然后进行注册
2.自定义类实现BeanDefinitionRegistyPostProcessor接口

再次测试



发现有了该类的BeanDefinition,然后实例化成功了
3.还可以自定义注解完成该类的实例化
3.1首先创建一个自定义注解

3.2给CustomerBeanDefinition类添加自定义的注解

3.3通过对BeanDefinitionRegistryPostProcessor接口的应用对应自定义注解进行扫描

3.4测试

结果发现自定义注解生效了,加了自定义注解的类也被扫描到并且封装成了BeanDefinition。
浙公网安备 33010602011771号