Spring 常用PostProcessor

今天我们来看一下Spring常用的PostProcessor

他们的命名风格都是xxxPostProcessor

BeanDefinitionRegistryPostProcessor

postProcessBeanDefinitionRegistry可以额外的注册bean

因此postProcessBeanDefinitionRegistry的自由度是很高的

BeanFactoryPostProcessor

BeanFactoryPostProcessor也可以额外的注册bean,细节功能不同

InstantiationAwareBeanPostProcessor

postProcessBeforeInstantiation在bean的实例化之前执行,默认返回null,如果返回的不是null则表示我们提前给予了bean实例,Spring将短路入参的beanClass的实例化(即不对beanClass实例化)

而postProcessAfterInstantiation则可以处理一些后置事项,一般比较少用到

BeanPostProcessor

postProcessBeforeInitialization在bean的初始化之前执行,在这里甚至可以替换bean

可以看到bean被替换

postProcessAfterInitialization同样也可以替换bean,而它与postProcessBeforeInitialization之间间隔的是bean的init过程,这个我们在Springboot 启动过程_icodegarden的博客-CSDN博客 中的refresh方法中的finishBeanFactoryInitialization(beanFactory); 已经看过

DestructionAwareBeanPostProcessor

在bean的destory之前执行,在 Springboot 关闭过程_icodegarden的博客-CSDN博客 中我们已经看过Spring的关闭

EnvironmentPostProcessor

这个是在Environment创建后触发的

我们看到是在收到后ApplicationEnvironmentPreparedEvent触发的,而这个事件是在启动过程中的run方法中的ConfigurableEnvironment environment = prepareEnvironment(listenersbootstrapContextapplicationArguments); 中发出的Springboot 启动过程_icodegarden的博客-CSDN博客

Environment可以让我们做更多的处理,例如增加配置源,像IntegrationPropertiesEnvironmentPostProcessor处理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值