代码之家  ›  专栏  ›  技术社区  ›  David Parks

如何使在Spring MVC应用程序中创建的2个applicationContext成为全局applicationContext的子级

  •  2
  • David Parks  · 技术社区  · 14 年前

    我有3个应用程序上下文:

    • jetty中每个webapp的applicationContext父级(由SpringSecurity启动
    • 每个webapp的n xyz servlet上下文(我运行1个webapp)

    现在,我想在第一个上下文中添加一个简单的全局属性服务,并使其对其他上下文可见(我可以将其添加到applicationContext,但稍后我可能会在webapp上下文之外的其他地方使用它,并希望对此进行计划)。

    因为我没有管理其他两个上下文的创建(它们是由dispatcher servlet和spring security创建的,这两个上下文是从web.xml启动的),所以我不清楚应该如何和在哪里访问它们来将第一个上下文定义为父上下文(好吧,只有applicationContext应该将全局上下文作为其父上下文)。

    1 回复  |  直到 14 年前
        1
  •  1
  •   skaffman    14 年前

    (1)和(2)之间的父子关系可以由 ContextLoaderListener 你的 web.xml

    具体来说,看看 javadoc for ContextLoader.loadParentContext() . 它记录了 无法定位上下文(1)。它假设这个全局上下文是通过 ContextSingletonBeanFactoryLocator

    如果你 使用 ContextSingletonBeanFactoryLocator环境 ,那么应该很简单,只需遵循javadoc中的说明。如果使用其他方法引导全局上下文,则可以将 ,重写 loadParentContext() 方法来定位全局上下文,然后在 而不是标准 上下文加载程序侦听器