2017-05-03 10 views
0

私の前提はノーですが、確認したいと思います。Springプロパティをオーバーライドすると、それを参照するプロパティが更新されますか?

redis.host = localhost 
redis.port = 6379 
redis.address = ${redis.host}:${redis.port} 

私はその後、私のoverride.propertiesにしている場合:

redis.port = 7777 

私はそれも自動的にredis.addressを更新すると仮定していない

は、私がapplication.propertiesとして持っていると言う

?私の前提はノーではありますが、確かに知っておくといいでしょう。

+0

どのように物事が読み込まれているかによって異なります。 –

答えて

0

ええ、あなたが正しいです、プロパティは、定義されたもののためにオーバーロードされます。アドレスとホストは上書きされません。

https://github.com/spring-projects/spring-framework/blob/master/spring-core/src/main/java/org/springframework/core/io/support/PropertiesLoaderSupport.java 
+0

そのように見えます。このようなシナリオでのベストプラクティスの提案はありますか? – kennyg

+0

単一のベストプラクティスはありません。あなたのユースケースには最高のものがあります。プロパティの読み込みのCustomBehaviourを設定するには、PropertyPlaceholderConfigurer型のBeanを用意します。これを使用して、設定ファイルの順序とプロパティのオーバーライドを制御できます。 –

関連する問題