AbstractAutowireCapableBeanFactory.java部分代码如下
//对bean应用后置处理器中的postProcessAfterInitialization方法
@Override
public Object applyBeanPostProcessorsAfterInitialization(Object existingBean, String beanName)
throws BeansException {
Object result = existingBean;
for (BeanPostProcessor processor : getBeanPostProcessors()) {
Object current = processor.postProcessAfterInitialization(result, beanName);
if (current == null) {
return result;
}
result = current;
}
return result;
}
查看spring容器管理的BeanPostProcessor,BeanPostProcessor可以手动添加自定义的BeanPostProcessor,在引入第三方框架的时候可能也会增加相关的BeanPostProcessor
如果在使用过程中,定义了切面,即采用了aop,则对对应的类会进行代理,即相关的代理操作,进而生成相应的代理类。
示例如下: