spring的后置处理器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring的后置处理器相关的知识,希望对你有一定的参考价值。

参考技术A spring的后置处理器有两类,bean后置处理器,bf(BeanFactory)后置处理器。bean后置处理器作用于bean的生命周期,bf的后置处理器作用于bean工厂的生命周期。

Spring是一个bean依赖注入容器,容器是BF,它的上级对象是applicationContxt,applicationContxt在容器功能上附加了一下新的功能。我们使用spring时,用的都是applicationConext的实现类。
我们在初始化这些applicationConext时,最终调用的都是org.springframework.context.support.AbstractApplicationContext#refresh方法用于容器的初始化。这个方法是一个模板方法,规定了容器实例化的步骤。其中BF初始化完成后,会调用BF的后置处理器对BF进行后置处理。而后置处理器的调用是在org.springframework.context.support.AbstractApplicationContext#invokeBeanFactoryPostProcessors这个方法中进行的。

BF的后置处理器有两种,BeanFactoryPostProcessor和BeanDefinitionRegistryPostProcessor。BF后置处理器和BD(BeanDefinition)后置处理器。BD后置处理器是BF后置处理器的子接口。下面是BF后置处理器的api截图。

invokeBeanFactoryPostProcessors方法内,调用后置处理器的步骤如下:

在AnnotationConfigApplicationContext上下文中,会有一个关键的BD后置处理器:ConfigurationClassPostProcessor。它是用来扫描所有交给spring管理的注解类的。将其解析为BD实例放到AC中去。

spring管理的是bean,所以bean的实例化是一个重要的过程。spring是通过org.springframework.beans.factory.support.AbstractBeanFactory#getBean方法实例化并初始化Bean。实例化Bean的过程中,可以通过bean的后置处理器插手Bean的实例化过程。

Bean的实例化过程如下:

在这个过程中,spring内设了8个bean的后置处理器调用点,用来进行扩展。

Bean后置处理器有五种:

Bean后置处理器的API截图:

以上是关于spring的后置处理器的主要内容,如果未能解决你的问题,请参考以下文章

spring后置处理器接口都有哪些

spring的bean工厂后置处理器

Spring源码之Spring后置处理器详解

Spring源码之Spring后置处理器详解

spring框架前置增强,后置增强,和环挠增强,异常增强有什么作用

spring常用注解作用与常用接口与后置处理器