[Spring] Resumen del análisis del código fuente del ciclo de vida del frijol

[Spring] Resumen del código fuente del ciclo de vida del frijol

imagen-20220403143637972

1. Verificación del caso

Defina dos beans A, B e implemente tres puntos de extensión de MyBeanFactoryProcess, MyBeanProcessor, MyInstantiationAwareBeanPostProcessors

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

 <bean id="a" class="com.sgg.bean.A" init-method="init"/>
 <bean id="b" class="com.sgg.bean.B"/>

 <bean id="myBeanFactoryProcess" class="com.sgg.process.MyBeanFactoryProcess"/>
 <bean id="myBeanProcessor" class="com.sgg.process.MyBeanProcessor"/>
 <bean id="myInstantiationAwareBeanPostProcessors" class="com.sgg.process.MyInstantiationAwareBeanPostProcessors"/>



</beans>

UN

imagen-20220403144206176

B

imagen-20220403144218921

MyBeanFactoryProcess

imagen-20220403144253316

`MiProcesadorBean

imagen-20220403144308958

MyInstantiationAwareBeanPostProcesadores

imagen-20220403144325799

resultado de salida

imagen-20220403143801713

2. Resumen

2.1 Postprocesador BeanFactory

Después de crear la fábrica de beans para analizar y generar bd, podemos obtener el objeto de la fábrica de beans implementando BeanFactoryPostProcessor y modificar la información de definición del bean iniciado.

2.2 InstanciaciónAwareBeanPostProcessor

Antes de instanciar el bean, podemos implementar InstantiationAwareBeanPostProcessor y reescribir el método postProcessBeforeInitialization para agregar un objeto al contenedor y finalizar la instanciación del bean actual.

Después de instanciar el bean, podemos implementar InstantiationAwareBeanPostProcessor y reescribir el método postProcessAfterInstantiation para devolver verdadero o falso para decidir si se realiza el llenado de atributos.

2.3 Postprocesador de Bean

Antes de inicializar el bean, podemos implementar BeanPostProcessor para reescribir el método postProcessBeforeInitialization para cambiar el bean correspondiente al beanName actual

Después de inicializar el bean, podemos implementar BeanPostProcessor para reescribir el método postProcessAfterInitialization para obtener el objeto bean después de la inicialización.

Supongo que te gusta

Origin blog.csdn.net/JAVAlife2021/article/details/123937456
Recomendado
Clasificación