Estoy estudiando para la certificación Spring Core y tengo algunas dudas sobre cómo Spring maneja el ciclo de vida de los beans y, en particular, sobre el postprocesador de beans .
Entonces tengo este esquema:

Para mí está bastante claro lo que significa:
Los siguientes pasos tienen lugar en la fase Load Bean Definitions :
Las clases de @Configuration se procesan y / o se escanean los @Components y / o se analizan los archivos XML .
Definiciones de Bean agregadas a BeanFactory (cada una indexada bajo su ID)
BeanFactoryPostProcessor especiales invocados, puede modificar la definición de cualquier bean (por ejemplo, para los reemplazos de valores de marcador de posición de propiedad).
Luego, los siguientes pasos tienen lugar en la fase de creación de beans :
Cada bean se instancia ansiosamente por defecto (creado en el orden correcto con sus dependencias inyectadas).
Después de la inyección de dependencia, cada bean pasa por una fase de posprocesamiento en la que pueden ocurrir más configuraciones e inicializaciones.
Después del posprocesamiento, el bean está completamente inicializado y listo para su uso (seguido por su id hasta que se destruye el contexto)
Ok, esto es bastante claro para mí y también sé que hay dos tipos de postprocesadores de frijoles que son:
Inicializadores: Inicialice el bean si se le indica (es decir, @PostConstruct).
y todo lo demás: que permiten configuraciones adicionales y que pueden ejecutarse antes o después del paso de inicialización
Y publico esta diapositiva:

Entonces, para mí está muy claro qué hacen los inicializadores postprocesadores de frijoles (son los métodos anotados con la anotación @PostContruct y que se llaman automáticamente inmediatamente después de los métodos de establecimiento (es decir, después de la inyección de dependencia), y sé que puedo usar para realizar algún lote de inicialización (como llenar un caché como en el ejemplo anterior).
Pero, ¿qué representa exactamente el otro postprocesador de frijoles? ¿A qué nos referimos cuando decimos que estos pasos se realizan antes o después de la fase de inicialización ?
Entonces, se crean instancias de mis beans y se inyectan sus dependencias, por lo que luego se completa la fase de inicialización (mediante la ejecución de un método anotado @PostContruct ). ¿Qué queremos decir al decir que se utiliza un postprocesador Bean antes de la fase de inicialización? ¿Significa que sucede antes de la ejecución del método anotado @PostContruct ? ¿Significa que podría suceder antes de la inyección de dependencia (antes de que se llamen a los métodos de establecimiento)?
¿Y qué queremos decir exactamente cuando decimos que se realiza después del paso de inicialización ? Significa que sucede después de la ejecución de un método anotado @PostContruct , ¿o qué?
Puedo imaginarme fácilmente por qué necesito un método anotado @PostContruct , pero no puedo encontrar un ejemplo típico del otro tipo de postprocesador de frijoles, ¿puede mostrarme algún ejemplo típico de cuándo se usan?