サーバー上の私のアプリケーションは、2 つのサーバー名でアクセスできます。別のサーバー名で別の applicationcontext.xml をロードしたいと考えています。どうすればできますか?それは春までに Java EE です!!
1 に答える
「2つのサーバー名でアクセス」とは、異なるHTTPを意味しますhostname
が、同じJavaEEサーバーインスタンスにマップされていると思います。
例:server1.acme.comおよびserver2.acme.com
1つのオプションは、アプリケーションを2回(2つの別々のEAR / WARファイル)インストールし、ビルドプロセスの一部として使用するapplicationcontext.xmlを構成することです。これには、必要に応じて別のコンテキストルートを割り当てることができるという利点があります。次に、Java EEサーバー(Apacheサーバーコンポーネントなど)を構成しhostname
て、を特定のアプリケーションコンテキストルートにマップできます。
オプション2は、両方のインスタンスのすべてのSpringBeanを含むEAR/ WARを1つだけインストールし、共有してはならないBeanに一意のBean名を割り当てることです。これには、1つのアプリケーションのみをロードし、一部のSpring Beanを共有するため、メモリフットプリントが削減されるという利点があります。Webは、 ServletRequest.getRemoteHost()を呼び出すことで取得できるController
サービスに基づいて、呼び出すサービスBeanを認識している必要があります。hostname
あなたが採用できる他のテクニックがあると確信しています。これらは頭に浮かんだ2つだけです。