2017-05-03 71 views
0

我的假設是否定的,但我想確認一下。重寫Spring屬性是否更新引用它的屬性?

說我有作爲application.properties:

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

如果我再在我的override.properties:

redis.port = 7777 

我不認爲它會自動更新redis.address以及?我的假設不是......但確實知道這很好。

+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

沒有單一的最佳做法。最好的一個是適合你的用例。您可以通過提供PropertyPlaceholderConfigurer類型的bean來配置CustomBehaviour的屬性加載。您可以使用此控制配置文件的順序和重寫屬性。 –