[解決済み] 複数のプロジェクト/モジュールで複数のプロパティファイルを使用する(PropertyPlaceholderConfigurer 経由)。
質問
現在、複数のプロジェクト/モジュールに分割されたアプリケーションを作成しています。例えば、以下のようなモジュールを例にとってみます。
- myApp-DAO
- myApp-jabber(マイアップジャバー
各モジュールは独自のSpringコンテキストxmlファイルを持っています。DAOモジュールでは、PropertyPlaceholderConfigurerがあり、必要なDB接続パラメータを含むプロパティファイルを読み込みます。jabberモジュールでは、jabber接続のプロパティのためのPropertyPlaceHolderConfigurerも持っています。
さて、myApp-DAOとmyApp-jabberを含むメインアプリケーションが登場します。すべてのコンテキストファイルを読み込んで、1つの大きなSpringコンテキストを開始します。残念ながら、1つのコンテキストには1つのPropertyPlaceholderConfigurerしかないようで、最初にロードされたモジュールが接続パラメータを読み込むことができます。もう1つのモジュールは、"Could not resolve placeholder 'jabber.host'" のようなエラーで例外を投げる。
問題が何であるかはなんとなくわかりますが、解決策、または私の使用例に対するベストプラクティスがわかりません。
各モジュールがそれ自身のプロパティファイルをロードできるようにするには、どのように構成したらよいでしょうか。現在、私は PropertyPlaceHolderConfigurer を個別のコンテキスト ファイルから移動し、それらをメイン アプリケーションのコンテキストにマージしました (単一の PropertyPlaceHolderConfigurer ですべてのプロパティ ファイルをロードします)。これは、daoモジュールを使用するすべての人が、自分のコンテキストにPropertyPlaceHolderConfigurerが必要であることを知る必要があるため、しかし、最悪です。
私は、stackoverflow コミュニティからのソリューション/アイデアを聞きたいと思っています。
どのように解決しましたか?
すべてのプレースホルダーが、関係するそれぞれのコンテキストで、解決できないキーを無視していることを確認すれば、これらのアプローチの両方が機能します。たとえば
<context:property-placeholder
location="classpath:dao.properties,
classpath:services.properties,
classpath:user.properties"
ignore-unresolvable="true"/>
または
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:dao.properties</value>
<value>classpath:services.properties</value>
<value>classpath:user.properties</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders" value="true"/>
</bean>
関連
-
[解決済み] リフレクションを使用して文字列からプロパティ値を取得する
-
型に解決できない エラー解決
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException:5 エラー
-
配列定数は初期化子でのみ使用可能です。
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集
-
swagger2 モデルが表示されない モデルが見つからない @ApiModel アノテーションが表示されない問題
-
[解決済み] 変数を使用してオブジェクトのプロパティに動的にアクセスする
-
[解決済み] プロパティとゲッターとセッターの使い分け
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
-
[解決済み] [Solved] アノテーションを使用して構成されたSpring Beanにプロパティ値を注入するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
SLF4J: クラス・パスに複数のSLF4Jバインディングが含まれています。
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException:5 エラー
-
Javaジェネリックを1つの記事で
-
Junitのユニットテストはjava.lang.Testを報告します。
-
keytool error: java.io.FileNotFoundException: cacerts (アクセス拒否されました。)
-
アノテーション「@Retention」の役割
-
CertificateException: XXXに一致するサブジェクトの代替DNS名が見つかりません 解決策
-
switch case文のcaseの後の列挙定数は列挙型なし