¿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?

Respuestas a la pregunta(3)

Su respuesta a la pregunta