【问题标题】:Spring : Sharing Application Context between different servletsSpring:在不同的 servlet 之间共享应用程序上下文
【发布时间】:2017-08-17 18:28:18
【问题描述】:

我在同一个项目中有一个 Web 应用程序和 SOAP Web 服务。我已经定义了两个 servlet xml

mvc-servlet.xml

<import resource="ws-applicationContext.xml"/>

soap-servlet.xml

<import resource="soap-applicationContext.xml"/>

bot 这些 applicationContext 导入一个通用文件

soap-applicationContext.xml 的内容

<import resource="my-common-applicationContext.xml"/>

<context:annotation-config/>
<context:component-scan base-package="com.xyz.myproject1"/>

ws-applicationContext.xml 的内容

<import resource="my-common-applicationContext.xml"/>

<context:annotation-config/>
<context:component-scan base-package="com.xyz.myproject2"/>

my-common-applicationContext.xml 有集成、数据等都需要的通用包。

在应用程序启动时,由于 my-common-applicationContext.xml 包含在两个应用程序上下文中,它会被加载两次。这会导致 DataConfigurations 被加载两次。

解决这个问题的最佳方法是什么,同时确保上下文都可以访问相关的 bean?

【问题讨论】:

    标签: spring soap


    【解决方案1】:

    找到了正确的方法。 所有通用文件都通用,但使用 ContextLoaderListener 加载。这样可以确保所有类都可用。

    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    
    
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:my-common-applicationContext.xml
        </param-value>
    </context-param>
    

    【讨论】:

      猜你喜欢
      • 2011-12-15
      • 2012-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      • 1970-01-01
      相关资源
      最近更新 更多