Análisis del código fuente de RefreshScope
I. Atributos
El valor predeterminado de ansioso es verdadero, lo que realizará una creación temprana de instancias de todos los beans en el alcance de actualización.
Métodos
< p. > método de actualizaciónEnvía el evento RefreshScopeRefreshedEvent;
Método de escucha EventListener
Recrea el objeto Bean
Este es el núcleo; Tipo de procesamiento de frijoles. Método de escucha EventListener
Recrear el objeto Bean
Esta es la clase de procesamiento central del bean, que define principalmente la información del ciclo de vida del bean y la información de fábrica para crear el bean. Además, también define un método para modificar dinámicamente la información del bean antes de crear una instancia de un bean, a fin de obtener información de definición del bean del caché cuando se escuchan eventos de actualización de información de configuración y destrucción dinámica. y destrucción cuando es necesario volver a modificar la definición del bean. Refactorización;
BeanLifecycleWrapper
La clase contenedora que envuelve el ciclo de vida del bean, contiene principalmente ObjectFactory y lo usa para crear. Objetos Bean;
BeanLifecycleWrapperCache
El caché de BeanLifecycleWrapper mejora la eficiencia de obtener información de definición de bean
*BeanFactoryPostProcessor *
El principal; El cuerpo de BeanFactoryPostProcessor es BeanFactory, y solo se define un método en esta interfaz, que se volverá a llamar después de que BeanFactory cargue la definición del bean en ApplicationContext, pero antes de que se cree una instancia del bean correspondiente. Por lo tanto, normalmente podemos modificar la definición del bean antes de la creación de instancias implementando esta interfaz.
BeanFactoryPostProcessorBean (para el postprocesador de fábrica)
Modifique dinámicamente el contexto a través del BeanFactory inyectado antes de que se cree una instancia del bean
BeanDefinitionRegistryPostProcessor (para el postprocesador del bean -procesador) Postprocesador de registro)
Procesa dinámicamente la información de BeanDefinition en el contexto anterior a BeanFactoryPostProcessor