【问题标题】:spring: add xml context on-the-fly?spring:即时添加 xml 上下文?
【发布时间】:2009-12-09 14:29:29
【问题描述】:

我希望能够即时加载 spring context.xml 文件,以便它们与之前加载的上下文相关联(意思是,在 contextA.xml 中,我可以引用 contextB.xml 中定义的 bean已经加载)。我希望现有的 bean 不会被销毁,然后在添加上下文时创建。

【问题讨论】:

    标签: java spring


    【解决方案1】:

    这很容易做到,大多数 BeanFactory 和 ApplicationContext 实现都有父上下文的概念。

    BeanFactory newFactory = new XmlBeanFactory(xmlResource, yourParentBeanFactory);
    
    // if you what an ApplicationContext
    
    ApplicationContext newContext = new ClassPathXmlApplicationContext( new String[]{"newBeans.xml"}, parent);
    

    http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/beans/factory/xml/XmlBeanFactory.html

    在新上下文中无法在其自身中解析的引用被传递给父级并传递给它的父级。

    请注意,您可以通过实现 ApplicationContextAware 来获取当前应用程序上下文。

    【讨论】:

    • 这将涉及改变时空连续体并同时穿越流。为新上下文提供父级是这样做的方法,实际上没有其他选择。
    • 其实你可以用new ClassPathXmlApplicationContext( new String[]{"newBeans.xml"})。然后您将获得一个与现有上下文完全无关的新 Spring 上下文。
    • 回复很晚,是的,但提问者需要参考现有上下文。
    猜你喜欢
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    相关资源
    最近更新 更多