2017-05-03 56 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的属性加载。您可以使用此控制配置文件的顺序和重写属性。 –