本文共 1373 字,大约阅读时间需要 4 分钟。
BeanPostProcessor 主要对其他Bean进行处理,例如为其他Bean生成代理等。
接口定义如下:public interface BeanPostProcessor { //实例化、依赖注入完毕,在调用显示的初始化之前完成一些定制的初始化任务 Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException; //实例化、依赖注入、初始化完毕时执行 Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException; }
这里写代码片
根据Bean实例的name属性,创建Bean实例的代理
根据Advisor创建代理
这个类作为ApplicationContext的回调类,可以回调一些实现*Aware接口的类
如果一些Bean不适合被所有BeanPostProcessor处理,将会记录一些日志
if (logger.isInfoEnabled()) { logger.info("Bean '" + beanName + "' of type [" + bean.getClass() + "] is not eligible for getting processed by all BeanPostProcessors " +"(for example: not eligible for auto-proxying)");}
处理实现ImportAware接口的Bean
处理实现EnhancedConfiguration接口的类
支持以下JSR-250注解:
@Resource @PostConstruct @PreDestroy支持@Autowired 、@Value 的自动配置
处理@Required注解
转载地址:http://zshgi.baihongyu.com/