一、何谓BeanProcessor
BeanPostProcessor是SpringFramework里非常重要的核心接口之一,我先贴出一段源代码:
在这里我先简单解释一下其注释的含义:
这个接口允许我们自定义修改新bean的一个实例,比如说:检查它们的接口或者将他们包装成代理对象等,ApplicationContexts能自动察觉到我们在BeanProcessor里对对象作出的改变,并在后来创建该对象时应用其对应的改变。
这两个方法分别对应IOC容器对对象初始化前的操作和对象初始化后的操作
下面我们来演示一个例子:
StudentEntity:
运行得到如下结果:
我们可以看到在配置文件里定义的bean属性已经发生改变
二、SpringFramework中BeanPostProcessor经典应用场景
1.初始化BeanPostProcessor的源码
根据 ClassPathXmlApplicationContext的构造方法,我们可以看到该类初始化的时候会调用refresh():
2.@Autowired实现的代码跟踪
注意AutowiredAnnotationBeanPostProcess