gpt4 book ai didi

java - Spring 网络应用程序。一战多应用上下文

转载 作者:搜寻专家 更新时间:2023-11-01 03:51:13 24 4
gpt4 key购买 nike

我搜索了一段时间,但找不到适合我的问题的解决方案。

我有一个 WAR Web 应用程序,我想在其中运行 2 个 Spring 应用程序,一个用于 Web 部分,一个运行计划任务。这两个应用程序共享很多 beans,所以我希望这两个应用程序共享一些 beans 实例。

我想将我的上下文拆分为:
-共享上下文.xml
-web-context.xml
-task-context.xml

Web-context 和 task-context 必须隔离,不能互相看到。他们需要创建一些相同但配置不同的 bean。

这可能吗?我应该怎么做?

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

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

但问题是web和task之间没有隔离。它们都共享所有 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>

已更新
-为了让事情更清楚,我需要任务和网络之间的这种隔离,因为用于运行计划任务的任务上下文定义了一些在网络上下文中但不同的bean。例如。我有位于 web 上下文中的作用域 session bean,但我需要为任务以不同方式定义它们,因为计划任务不能使用作用域 session bean。

最佳答案

可以使用导入标签

在 web-context.xml 中:

<import resource="classpath:shared-context.xml" />
<import resource="classpath:task-context.xml" />

关于java - Spring 网络应用程序。一战多应用上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27489969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com