BeanPostProcessor
2018-10-10 本文已影响0人
轻易流逝
BeanPostProcessor是spring提供的一个扩展点,通过BeanPostProcessor扩展点,我们可以对Spring管理的bean进行再加工。比如:修改bean的属性(@ConfigurationProperties注解的原理)、生成一个动态代理(事物)等。
public interface BeanPostProcessor {
default Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
default Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
}
它有两个方法postProcessBeforeInitialization
,postProcessAfterInitialization
。
分别在bean初始化之前和之后执行。
执行顺序如下:
1,首先执行bean的构造方法,
2,BeanPostProcessor的postProcessBeforeInitialization
方法
3,InitializingBean的afterPropertiesSet方法
4,initMethod方法
5,BeanPostProcessor的postProcessAfterInitialization
方法