Spring web应用程序。 一个战争多重应用上下文

我搜索了一段时间,但无法找到一个适当的解决方案来解决我的问题。

我有一个WAR Web应用程序,我想要在其中运行2个Spring应用程序,一个用于Web部件,一个运行计划任务。 这两个应用程序共享大量的bean,所以我希望这两个应用程序共享一些bean实例。

我想分割我的背景:
-shared-的context.xml
-Web-的context.xml
-task-的context.xml

Web上下文和任务上下文必须被隔离,而不是彼此看到。 他们需要创建几个相同但具有不同配置的bean。

这可能吗? 我该怎么做?

我首先尝试在web上下文和任务上下文中放置<import resource="classpath:shared-context.xml" /> ,并将我的web.xml配置为

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>web-context.xml task-context.xml</param-value>
</context-param>

但问题在于网络和任务之间没有隔离。 它们都共享所有的bean,即使是在web-context.xml和task-context.xml中定义的bean

这里的信息是我的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/web-context.xml /WEB-INF/task-context.xml</param-value>
    </context-param>

    <!-- Listeners -->
    <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.gwtrpcspring.RemoteServiceDispatcher</servlet-class>
    </servlet>

    <servlet>
        <servlet-name>contentDownloadServlet</servlet-name>
        <servlet-class>ch.olator.servlet.MyContentDownloadServlet</servlet-class> 
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.rpc</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>contentDownloadServlet</servlet-name>
        <url-pattern>/download</url-pattern>
    </servlet-mapping>

    ... some irrelevant filters ...

</web-app>

更新
为了使事情更清楚,我需要在任务和Web之间进行这种隔离,因为任务上下文用于运行计划任务,以定义一些处于Web上下文但不同的bean。 例如,我有范围会话bean在web上下文中,但我需要为任务定义不同的方式,因为计划任务不能使用范围会话bean。


你可以使用导入标签

在web-context.xml中:

<import resource="classpath:shared-context.xml" />
<import resource="classpath:task-context.xml" />
链接地址: http://www.djcxy.com/p/38927.html

上一篇: Spring web app. One war multiple application context

下一篇: Why should I use Quartz Scheduler insteade of TimerTask