我在服务器上的应用程序可以被两个服务器名访问,现在我想通过不同的服务器名加载不同的 applicationcontext.xml。我该怎么做?它是春天的 Java EE!
问问题
244 次
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 回答