后置处理器
# Spring的后置处理器
spring容器创建流程中,会在固定的流程节点,执行一些接口方法,类似于插件,使得可以通过添加插件来实现功能。 使用者可以通过定制后置处理器来达到自己的目的,而不用修改spring框架的代码。 比如在容器创建后会执行BeanFactoryPostProcessor类型的后置处理器,spring通过内部添加配置类扫描的后置处理器(ConfigurationClassBeanPostProcessor),在容器创建后执行,完成Bean定义信息的收集。实现了通过注解方式注入Bean的第一步。
# 干预spring生命周期的后置处理器
Spring将后置处理器的执行都放到了一个代理类中-->PostProcessorRegistrationDelegate 由该类来执行各个阶段的后置处理器。
# BeanFactoryPostProcessor
对Bean工厂、Bean定义信息注册中心的功能增强 这一类型还包括继承了BeanFactoryPostProcessor接口的BeanDefinitionRegistryPostProcessor
在容器创建后执行 先执行BeanDefinitionRegistryPostProcessor.postProcessBeanDefinitionRegistry 后执行BeanFactoryPostProcessor.postProcessBeanFactory 入口在AbstractApplicationContext.refresh --> invokeBeanFactoryPostProcessors
# BeanPostProcessor
对Bean组件的增强 容器刷新十二大步的registerBeanPostProcessors方法注册这些Bean 之后,在组件创建的过程中,这些后置增强器发挥作用
# 流程图
编辑 (opens new window)
上次更新: 2023/04/09, 16:34:32