4

私のSpring xmlファイルには複数のプロパティファイルソースがあり、それらには異なる順序値があり、一部はオプションです。

  • application.properties - クラスパスで、デフォルト (フォールバック) プロパティを保持します (優先度が最も低い)
  • [HOSTNAME].properties - クラスパスで、そのホスト名に固有のプロパティを保持します (優先度が高い)
  • jndi の値によって読み込まれるプロパティ ファイル - jndi を介して指定された場所、最高の優先度。

つまり、application.properties に設定されているデフォルトのプロパティを .properties のプロパティでオーバーライドし、jndi によって場所が参照されるプロパティ ファイルによってそれらの値をオーバーライドすることができます。

ただし、春がすべてのプロパティの解決された値のリストを提供する方法が必要です。どうすればこれができるか知っている人はいますか?

特定のプロパティの値を取得するのは簡単ですが、実際に必要なのは、解決されたすべてのプロパティのリストです。

4

1 に答える 1

1

私は2つの提案があります:

  1. PropertyPlaceholderConfigurerクラスをメソッドでオーバーライドしてprocessProperties、解決されたすべてのプロパティを設定できます。例をここに示します。
  2. PropertyPlaceholderConfigurerSpringのインターフェースを実装しているためOrdered、複数のプロパティプレースホルダーを持つことができます。order次に、アプリケーションに必要な順序でそれらを割り当てます。最後に、クラスがすでに拡張されているので、ロードする必要がある順序で、解決されたすべてのプロパティにアクセスできます。
于 2012-04-18T09:32:47.673 に答える