Как ApplicationContextAware работает в Spring?
Весной, если боб реализуетApplicationContextAware
то он может получить доступ кapplicationContext
, Поэтому он может получить другие бобы. например
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext context) throws BeansException {
applicationContext = context;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
}
затемSpringContextUtil.getApplicationContext.getBean("name")
может получить бин "имя".
Чтобы сделать это, мы должны положить этоSpringContextUtil
внутриapplications.xml
например,
<bean class="com.util.SpringContextUtil" />
Здесь бобSpringContextUtil
не включает собственностьapplicationContext
, Я предполагаю, что при инициализации Spring Bean это свойство устанавливается. Но как это сделать? Как работает методsetApplicationContext
позвонить?