【发布时间】:2009-12-09 14:29:29
【问题描述】:
我希望能够即时加载 spring context.xml 文件,以便它们与之前加载的上下文相关联(意思是,在 contextA.xml 中,我可以引用 contextB.xml 中定义的 bean已经加载)。我希望现有的 bean 不会被销毁,然后在添加上下文时创建。
【问题讨论】:
我希望能够即时加载 spring context.xml 文件,以便它们与之前加载的上下文相关联(意思是,在 contextA.xml 中,我可以引用 contextB.xml 中定义的 bean已经加载)。我希望现有的 bean 不会被销毁,然后在添加上下文时创建。
【问题讨论】:
这很容易做到,大多数 BeanFactory 和 ApplicationContext 实现都有父上下文的概念。
BeanFactory newFactory = new XmlBeanFactory(xmlResource, yourParentBeanFactory);
// if you what an ApplicationContext
ApplicationContext newContext = new ClassPathXmlApplicationContext( new String[]{"newBeans.xml"}, parent);
在新上下文中无法在其自身中解析的引用被传递给父级并传递给它的父级。
请注意,您可以通过实现 ApplicationContextAware 来获取当前应用程序上下文。
【讨论】:
new ClassPathXmlApplicationContext( new String[]{"newBeans.xml"})。然后您将获得一个与现有上下文完全无关的新 Spring 上下文。