spring源码解析(四)-registerBeanPostProcessors

本文详细解析了Spring框架中`registerBeanPostProcessors`方法,该方法用于注册实现了`BeanPostProcessor`接口的类,允许在bean实例化前后进行扩展处理。文章介绍了BeanPostProcessor和BeanFactoryPostProcessor的区别,以及BeanPostProcessor在bean初始化时的调用时机,包括`postProcessBeforeInitialization`和`postProcessAfterInitialization`方法。通过示例展示了如何自定义BeanPostProcessor并注册到Spring容器中。

 

介绍:

上节我们介绍了invokeBeanFactoryPostProcessors方法,

这篇文章将重点解析refresh中的另一个重要方法---registerBeanPostProcessors

invokeBeanFactoryPostProcessors 方法主要用于处理 BeanFactoryPostProcessor 接口,而 registerBeanPostProcessors 方法主要用于处理 BeanPostProcessor 接口。BeanFactoryPostProcessor 和 BeanPostProcessor,这两个接口接口很像。BeanFactoryPostProcessor 是针对 BeanFactory 的扩展,主要用在 bean 实例化之前,读取 bean 的定义,并可以修改它。BeanPostProcessor 是针对 bean 的扩展,主要用在 bean 实例化之后,执行初始化方法前后。。。

允许开发者对 bean 实例进行修改

(注:也有一些比较特殊的BeanPostProcessor 是在实例化前后去做调用的,比如aop的生成代理的功能,就是在 被代理的类实例化后去生成代理对象的。。。BeanPostProcessor 有两个方法 postBefore 和postAtfer

这里和BeanFactoryPostProcessor有点区别,,BeanFactoryPostProcessor通常只有postAfter方法。

 

概述:

本方法会注册所有的 BeanPostProcessor,将所有实现了 BeanPostProcessor 接口的类加载到 BeanFactory 中。

BeanPostProcessor 接口是 Spring 初始化 bean 时对外暴露的扩展点,Spring IoC 容器允许 BeanPostProcessor 在容器初始化 bean 的前后,添加自己的逻辑处理。在 registerBeanPostProcessors 方法只是注册到 BeanFactory 中,具体调用是在 bean 初始化的时候。

具体的:在所有 bean 实例化时,执行初始化方法前会调用所有 BeanPostProcessor 的 postProcessBeforeInitialization 方法,在执行初始化方法后会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值