Spring的各种PostProcessor

Spring 框架提供了几种 PostProcessor接口用于建模对容器或者bean的后置处理器,它们定义了一些方法,这些方法在特定的时机会被调用。通过这种机制,框架自身或者应用开发人员有机会在不侵入容器或者bean核心逻辑的情况下为容器或者bean做针对某些特定方面的定制或者扩展:能力增强,属性设置,内容修改,对象代理,甚至直接替换整个beanSpring 提供的 PostProcessor 接口有如下几种 :

  1. BeanDefinitionRegistryPostProcessorBeanDefinitionRegistry后置处理器容器级别
  2. BeanFactoryPostProcessorBeanFactory后置处理器容器级别
  3. BeanPostProcessorBean后置处理器bean实例级别
    实际应用中又可细分为如下几类 :
    1. InstantiationAwareBeanPostProcessor
    2. MergedBeanDefinitionPostProcessor
    3. DestructionAwareBeanPostProcessor
    4. SmartInstantiationAwareBeanPostProcessor
    5. 一般BeanPostProcessor

Spring框架自身提供了很多这些PostProcessor的实现类,每个PostProcessor实现类分别有不同的关注点,Spring利用这些PostProcessor实现类完成了很多框架自身的任务,主要在容器启动和bean获取阶段。另外,开发人员也可以实现自己的PostProcessor来扩展Spring容器或者bean的能力。这里面尤其是通过自定义实现BeanPostProcessor,开发人员有机会对容器中所有的bean做定制。

注意,本文中PostProcessor只是用于表达"后置处理器"这一概念,而并非Spring中存在一个使用此名字的接口或者类。

以上各种容器级别PostProcessor接口之间的继承关系:

BeanDefinitionRegistryPostProcessor
BeanFactoryPostProcessor

以上各种bean级别BeanPostProcessor接口之间的继承关系:

SmartInstantiationAwareBeanPostProcessor
InstantiationAwareBeanPostProcessor
BeanPostProcessor
MergedBeanDefinitionPostProcessor
DestructionAwareBeanPostProcessor

参考文章

Spring各种PostProcessor : BeanDefinitionRegistryPostProcessor
Spring各种PostProcessor : BeanFactoryPostProcessor
Spring各种PostProcessor : BeanPostProcessor
Springboot 应用常见的BeanPostProcessor清单
Spring-单例bean创建过程小结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值