1

現在、Apache Camel ベースのアプリを Tomcat に変更しています。ビジネス ニーズにより、アプリの複数のインスタンスを 1 台のマシンでホストする必要があり、それぞれに独自の構成セットがあります。以前は構成ファイルが app にバンドルされていました (したがって、クラスパスから簡単にアクセスできます) が、現在は絶対パス (パス/インスタンス 1、パス/インスタンス 2 など) で分離されます。Springで達成したいこと:

  • 初期Springコンテキストファイルの変数としてインスタンスconfパスをエクスポートするため、${instance_conf_path}を介して参照できます(現在、プロパティファイルにあり、PropertyPlaceholderConfigurerを読み取っています)
  • 言及された最初のコンテキストで使用してインポートされた実際のスプリングコンテキスト(論理的に分離されている)があります
  • このパスは Apache Camel ルーティングのいくつかの部分でも使用されるため、そこでもこの変数を使用する必要があります (これは Camel のマニュアルに従って動作するはずです)。

Camel 2.10.2 には推移的な依存関係に Spring 3.0.7 がありますが、この記事を読んだ後、手動で Spring 3.1.2 を Maven に入れました。しかし、それはまだ変数を知らないと不平を言っていました。助言がありますか?または、Spring ですべての構成を外部に保存し、この構成へのパスのみをアプリ バンドルに設定するより良い方法を知っていますか? ありがとうございました

4

1 に答える 1

0

環境変数の使用を検討しましたか? web.xml から参照できます。

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
    classpath*:spring/sharedContext.xml,
    file:/${APP_HOME}/spring/specificContext.xml
  </param-value>
</context-param>

Camel に特定のものが必要な場合は、適切な APP_HOME の下にインスタンス固有の構成を含めることができます。

于 2012-10-22T17:31:28.577 に答える