-3

我在服务器上的应用程序可以被两个服务器名访问,现在我想通过不同的服务器名加载不同的 applicationcontext.xml。我该怎么做?它是春天的 Java EE!

4

1 回答 1

2

我假设“被两个服务器名访问”是指不同的 HTTP hostname,但映射到同一个 Java EE 服务器实例。

例如 server1.acme.com 和 server2.acme.com

一种选择是安装应用程序两次(两个单独的 EAR/WAR 文件)并配置您希望在构建过程中使用哪个 applicationcontext.xml。这样做的好处是您可以根据需要分配单独的上下文根。然后,您可以配置您的 Java EE 服务器(例如 apache 服务器组件)以将 a 映射hostname到特定的应用程序上下文根。

选项二是只安装一个 EAR/WAR,其中包含两个实例的所有 spring bean,并为那些不应该共享的 bean 分配唯一的 bean 名称。这具有减少内存占用的优势,因为您只加载一个应用程序并共享一些 Spring bean。您的 webController必须知道要调用哪些服务 bean,具体取决于hostname您可以通过调用ServletRequest.getRemoteHost()获得的服务 bean

我相信您还可以使用其他技术。这只是我想到的两个。

于 2012-08-17T07:49:50.300 回答