それぞれ独自のアプリケーションコンテキストプロパティファイルを持ついくつかのモジュールがあるプロジェクトで作業しています。これらのプロパティをすべてロードして、Springによるプレースホルダ解決に使用できるようにしたいと考えています。Spring 3.0の複数のプロパティファイル
前の質問はこれを言及しており、これらのプロパティファイルが吹いせずにお互いを参照に渡ることができるように、各コンテキストでPropertyPlaceholderConfigurerを使用優先順位で注文してtrueにignoreUnresolveablePlaceholdersを設定する方法について説明します良いブログの記事hereがありますアップ。
しかし、私はいくつかのカスタムプレースホルダ解決(私が解析しているいくつかのyamlファイルから)でロードしているプロパティを使用できるようにしたいので、これは私の問題を解決しません。これには、PropertyPlaceholderHelperを使用する必要があります。これには、Propertiesオブジェクトが引数として必要です。
私の知る限り、潜在的な解決策は以下のとおりです。
1)すべてのプロパティは1つのプロパティBeanにファイルをマージします。これにより、PropertyPlaceholderConfigurer(Springの内部プレースホルダー解決用)を作成し、PropertyPlaceholderHelper(私のプレースホルダー解決用)で使用できます。
2)何らかの方法でPropertyPlaceholderHelperを設定して、私が先に進み、そのブログ記事のアドバイスに従えば、PropertyPlaceholderConfigurersが開催します。
残念ながら、私はこれらのいずれかを行う方法を考えることができません。どんな助けでも大歓迎です!
PSここではSpring 3.1が大きな助けになるようです...残念ながら、私たちはまだそれに移行する準備ができていないので、まだ私を解決する解決策が必要です!
****編集****
これまでの回答に感謝します。彼らは良い答えですが、私たちは現在、非コアモジュールからプロジェクトのコアモジュールを分離する過程にあるため、残念なことに私を助けません。つまり、コアモジュールとそのアプリケーションコンテキストは、プロパティファイルの名前をハードコーディングできません。迷惑なことに、Springのクラスパススキャンは壊れているように見えるので、 "classpath *:*。properties"タイプのワイルドカードはトップレベルプロジェクトではなく、個々のモジュールをビルドするときにのみ機能します(これは既知の問題です)。
次に、非コアモジュールで定義されたプロパティファイルを、コアモジュールで定義されている既存のプロパティファイルにマージする方法について説明します。現時点では私はBeanPostProcessorを先に進めています - これを行うためのよりシンプルでエレガントな方法があるのだろうかと思っています。コードスニペット後
おかげ
私はあなたが少なくとも1つの一定のdirセグメントを提供する必要があると思うので、 'classpath *:* .properties'は動作しませんが' classpath *:config/*。properties'は実行されます。 – mrembisz