侧边栏壁纸
博主头像
敢敢雷博主等级

永言配命,自求多福

  • 累计撰写 57 篇文章
  • 累计创建 0 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Spring原理---postProcessBeanFactory方法

敢敢雷
2020-03-23 / 0 评论 / 0 点赞 / 391 阅读 / 408 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我删除。

在Spring中并没有具体去实现postProcessBeanFactory方法,是提供给想要实现BeanPostProcessor的三方框架使用的。谁要使用谁就去实现。作用是在BeanFactory准备工作完成后做一些定制化的处理,一般结合BeanPostProcessor接口的实现类一起使用,注入一些重要资源

举例

一个很简单的小demo,就是获得XML文件中注入的值,然后启动Spring,最后输出获得的值
XML配置文件
image.png
main方法为
image.png
输出结果为
image.png
但是现在,如果需要更改name值,现在喜欢唱,跳,rap,篮球的是李四
第一种方法是直接修改配置文件,将name改成李四,其实Spring提供了方法,在不修改配置文件的情况下修改name的值,就是通过子类重写父类的方法
这里重写的就是postProcessBeanFactory方法
修改代码后,如下
image.png
运行后
image.png
其实postProcessBeanFactory方法不只是修改配置文件中Bean的数据,既然拿到了beanDefinition,我们都知道beanDefinition就是Bean的定义,此时bean还未实例化,所以在它实例化前,我们可以对这个Bean作出很多修改,故而postProcessBeanFactory它可以做的事情有很多。

总结

postProcessBeanFactory是模板方法,此时,所有的beanDefinition已经加载,但是还没有实例化。 允许在子类中对beanFactory进行扩展处理。比如添加ware相关接口自动装配设置,添加后置处理器等,是子类扩展prepareBeanFactory(beanFactory)的方法

0

评论区