Primavera 5.x trip Fuente treinta y nueve getBean Procesador extensión de 4,5
La figura no menos
InstantiationAwareBeanPostProcessor 的 和 postProcessProperties postProcessPropertyValues
Esto es lo que llamamos auto-ensamblaje, interna CommonAnnotationBeanPostProcessor
y AutowiredAnnotationBeanPostProcessor
el manejo de procesador para inyección.
postProcessPropertyValues
Se ha expirado.
De hecho, casi todo el procesamiento. Así que podemos estar aquí en sus propias extensiones, objetos han conseguido, y lo que no puede hacer lo que es correcto, no se ha demostrado específicamente.
initializeBean de invokeAwareMethods finalización de la inyección comenzó inicializado
establece Principalmente algunas propiedades, hay una más importante es BeanFactoryAware
, que se puede obtener BeanFactory
.
Por ejemplo, nos propia realización se puede obtener esta información, es mirada más simple como:
applyBeanPostProcessorsBeforeInitialization antes de la inicialización
Si regresa null
, a continuación, volver directamente, que no se continúe llegar a un acuerdo, por lo que aquí realmente pueden organizar otros procesadores de mango, un procesador personalizado directamente de vuelta null
, regresó.
De hecho, esto es, para bean
algunas operaciones, nada especial.
invokeInitMethods realizan método de inicialización
Principalmente la aplicación implementa InitializingBean
la interfaz afterPropertiesSet
método:
Algunos métodos personalizados invokeCustomInitMethod
Que se bean
define en el conjunto initMethodName
:
real
Sólo tiene que escribir la definición de un método de clase:
public class PoJo {
public void init(){
System.out.println("自定义initMethodName");
}
}
código de ensayo
Se establece entonces una definición registrada frijol InitMethodName
.
@Test
public void invokeCustomInitMethodTest() throws Exception {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();
applicationContext.register(MyConfig.class);
AnnotatedBeanDefinition annotatedBeanDefinition=new AnnotatedGenericBeanDefinition(PoJo.class);
annotatedBeanDefinition.setInitMethodName("init");
applicationContext.registerBeanDefinition("myBean",annotatedBeanDefinition);
applicationContext.refresh();
}
Después de la inicialización applyBeanPostProcessorsAfterInitialization
Y un tratamiento similar antes de la inicialización, no dicen.
Pues bien, hoy aquí, esperamos estudio ayuda y entender, no rocíe el Gran Dios ver, comprender solamente su propio aprendizaje, capacidad limitada, por favor excusa.