Wie funktioniert ApplicationContextAware im Frühjahr?
Im Frühjahr, wenn eine Bohne implementiertApplicationContextAware
, dann ist es in der Lage, die zuzugreifenapplicationContext
. Daher ist es möglich, andere Bohnen zu bekommen. z.B.
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext context) throws BeansException {
applicationContext = context;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
}
DannSpringContextUtil.getApplicationContext.getBean("name")
kann die Bohne "Name" bekommen.
Um dies zu tun, sollten wir dies setzenSpringContextUtil
in derapplications.xml
, z.B.
<bean class="com.util.SpringContextUtil" />
Hier die BohneSpringContextUtil
beinhaltet nicht die EigenschaftapplicationContext
. Ich denke, wenn Spring Bean initialisiert wird, wird diese Eigenschaft gesetzt. Aber wie geht das? Wie funktioniert die Methode?setApplicationContext
angerufen werden?