BeanPostProcessor

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容