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方法

上一篇下一篇

猜你喜欢

热点阅读