2012-03-26 5 views
0

すべてのプロパティを繰り返し処理できるように、PropertiesオブジェクトをSpring Beanに取得する必要があります。私はそれが最終的な結果セットの性質を表して注入し、テストのプロパティはバインドアドレスとして0.0.0.0に10.xxxのような生産プロパティをオーバーライドするように、プロパティファイルを取得する方法spring、私のbeanのすべてのプロパティを読み込む方法

<context:property-placeholder location="esb-project-config.properties, test-esb-project-config.properties"/> 

私の春のテストファイルに次のように持っていますその2つのファイルのうちのどれですか?

おかげで、 ディーン

答えて

1

あなたは、プロパティBeanを作成し、idでそれを参照することができます:リストの後半に記載されているファイルから

<bean id="composedProperties" 
     class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 
    <property name="locations"> 
    <list> 
     <value>esb-project-config.properties</value> 
     <value>test-esb-project-config.properties</value> 
    </list> 
    </property> 
</bean> 

プロパティは、以前記載されているよりも優先されます。

+0

{@Value}を使用してプロパティを読み取るすべてのBeanを破棄しないでしょうか?私はJSR 330を私たちのものにブートストラップしていますので、{@AutoWire}の代わりにjavax.inject.Injectを使い始めることができ、既存の機能を壊すことはありません。 –

+0

これは反復処理が可能なマージされた 'Properties'オブジェクトの定義に過ぎません。それを '@ Value'などで使うには' ' – mrembisz

0

私は遅刻かもしれませんが、他人を助けることができます。「*」を使って試してみることもできるもう一つの解決法があります。

<context:property-placeholder location="classpath:*.properties"/> 

ここではそれは「プロパティ」拡張子を持つすべてのファイルをロードします。

関連する問題