class AbstractBeanFactory
public void setParentBeanFactory(BeanFactory parentBeanFactory) {
if (this.parentBeanFactory != null && this.parentBeanFactory != parentBeanFactory) {
throw new IllegalStateException("Already associated with parent BeanFactory: " + this.parentBeanFactory);
}
this.parentBeanFactory = parentBeanFactory;
}
Мое требование - создать цепочку ApplicationContexts, в которой один AppContext ссылается на другой в качестве своего родителя. Происхождение также распространяется на соответствующий DefaultListableBeanFactory
AppContext, то есть DefaultListableBeanFactory
контекста ссылается на родительский контекст DefaultListableBeanFactory
в качестве его родителя.
Это делается для того, чтобы компонент, находящийся в любом контексте в цепочке, можно было искать из самого нижнего AppContext.
Эта цепочка динамическая, новый AppContext добавляется вверху, любой AppContext может быть удален из середины.
Но когда я удаляю AppContext из середины и пытаюсь изменить родительское отношение DefaultListableBeanFactory
, это дает вышеприведенное исключение.
Как я могу изменить родительское отношение фабрик во время выполнения?
Спасибо,
С Уважением,
Vimal