侧边栏壁纸
  • 累计撰写 98 篇文章
  • 累计创建 85 个标签
  • 累计收到 9 条评论

spring系列笔记 - 第⼗三章 后置处理Bean

bearjun
2021-07-06 / 0 评论 / 0 点赞 / 515 阅读 / 1,023 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2021-07-06,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

BeanPostProcessor作用:对Spring工厂所创建的对象,进行再加工。(AOP 的底层实现)

  • 后置处理 Bean 原理分析
    06216-4juo3gr4qyq.png

1、Object postProcessBeforeInitialization(Object bean, String beanName)
**作用:**Spring创建完对象后,并进行注入,可以运行Before方法进行加工
**获得Spring创建好的对象:**通过方法的参数最终通过返回值交给Spring框架

2、Object postProcessAfterInitialization(Object bean, String beanName)
**作用:**Spring执行完对象初始化操作后,可以运行After方法进行加工
**获得Spring创建好的对象 :**通过方法的参数最终通过返回值交给Spring框架

注意:此处注意与对象的初始化操作的对比以及初始化操作流程。spring系列笔记 - 第⼗章 对象的生命周期
实战中:很少处理Spring的初始化方法:没有必要区分Before 和 After方法。只需要执行其中一个After方法即可。

  • BeanPostProcessor 开发步骤

实现BeanPostProcessor接口即可:

public class MyPostProcessor implements BeanPostProcessor {
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        return bean;
    }

    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        Category category = (Category) bean;
        category.setName("tinting");
        return category;
    }
}
<bean id="beanPostProcessor" class="xxxxx.xxx.MyPostProcessor"></bean>

注意:上述两个方法返回的对象就是初始化的bean对象。

  • 注意细节
    BeanPostProcessor会对Spring工厂中创建的所有对象进行加工

0

评论区