¿Cómo funciona ApplicationContextAware en Spring?
En primavera, si se implementa un frijol.ApplicationContextAware
, entonces es capaz de acceder a laapplicationContext
. Por lo tanto es capaz de obtener otros frijoles. p.ej.
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext context) throws BeansException {
applicationContext = context;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
}
EntoncesSpringContextUtil.getApplicationContext.getBean("name")
puede obtener el nombre "bean".
Para ello, deberíamos poner esto.SpringContextUtil
dentro deapplications.xml
, p.ej.
<bean class="com.util.SpringContextUtil" />
Aqui el frijolSpringContextUtil
no incluye la propiedadapplicationContext
. Supongo que cuando se inicializa el frijol de primavera, esta propiedad se establece. Pero, ¿cómo se hace esto? Como funciona el metodosetApplicationContext
ser llamado?