Como o ApplicationContextAware funciona no Spring?
Na primavera, se um feijão implementaApplicationContextAware
, então ele pode acessar oapplicationContext
. Portanto, é capaz de obter outros grãos. por exemplo.
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext context) throws BeansException {
applicationContext = context;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
}
EntãoSpringContextUtil.getApplicationContext.getBean("name")
pode obter o bean "name".
Para fazer isso, devemos colocar issoSpringContextUtil
dentro deapplications.xml
, por exemplo.
<bean class="com.util.SpringContextUtil" />
Aqui o feijãoSpringContextUtil
não inclui a propriedadeapplicationContext
. Eu acho que quando o Spring Bean inicializa, essa propriedade está definida. Mas como é que isto é feito? Como o métodosetApplicationContext
ser chamado?