欢迎光临散文网 会员登陆 & 注册

Spring系列(八):Spring生命周期中BeanPostProcessor接口用法介绍

2022-04-05 16:49 作者:IT技术分享社区  | 我要投稿

今天给大家介绍BeanPostProcessor接口用法,希望对大家能有所帮助!             

1、BeanPostProcessor 概念介绍

BeanPostProcessor接口通常被称为Bean的后置处理器,它是Spring中定义的接口,可以在Spring容器的创建过程中(主要在Bean初始化前后进行工作)回调BeanPostProcessor中定义的两个方法。

2、BeanPostProcessor接口方法

postProcessBeforeInitialization:在每一个bean对象的初始化方法调用之前回调。

postProcessAfterInitialization:在每个bean对象的初始化方法调用之后被回调。

说明:以上两个方法的返回值都不能为null,否则在后续的初始化方法会报空指针或者通过getBean()方法无法获取Bean对象。主要原因是如果返回值为null的情况下以上两个方法从Spring容器获取bean实例,没有再次放入Spring容器中去,这样容器中就没有了。

2.1 BeanPostProcessor源码内容


3、BeanPostProcessor 接口的作用

可以Spring容器中完成bean实例化、配置以及其他初始化方法前后根据业务的场景增加相应的逻辑处理。典型的案例AOP的实现。

4、代码示例

4.1 新建Person.java 类文件


4.2、新建MyBeanPostProcessor.java


4.3、新建TestBeanPostProcessorConfig.java 配置类


4.4、新建测试类 TestBeanPostProcessor.java

输出结果:

postProcessBeforeInitialization执行了testBeanPostProcessorConfig postProcessAfterInitializationtestBeanPostProcessorConfig UserInfo构造器执行了 postProcessBeforeInitialization执行了userInfo PostConstruct 初始化方法执行 postProcessAfterInitializationuserInfo Process finished with exit code 0




Spring系列(八):Spring生命周期中BeanPostProcessor接口用法介绍的评论 (共 条)

分享到微博请遵守国家法律