重写Spring属性是否会更新引用它的属性?
我的假设是否定的,但我想确认一下 假设我有as application.properties:重写Spring属性是否会更新引用它的属性?,spring,Spring,我的假设是否定的,但我想确认一下 假设我有as application.properties: redis.host = localhost redis.port = 6379 redis.address = ${redis.host}:${redis.port} redis.port = 7777 如果我的override.properties中有: redis.host = localhost redis.port = 6379 redis.address = ${redis.host}
redis.host = localhost
redis.port = 6379
redis.address = ${redis.host}:${redis.port}
redis.port = 7777
如果我的override.properties中有:
redis.host = localhost
redis.port = 6379
redis.address = ${redis.host}:${redis.port}
redis.port = 7777
我想这也不会自动更新redis.address吧?我的假设是不。。。但是如果能确定,那就太好了。是的,你是对的,属性会因定义的属性而过载。地址和主机不会被覆盖
https://github.com/spring-projects/spring-framework/blob/master/spring-core/src/main/java/org/springframework/core/io/support/PropertiesLoaderSupport.java
我想是这样的。您对这种情况下的最佳实践有什么建议吗?没有单一的最佳实践。最好的一个是对您的用例有好处的。您可以通过提供PropertyPlaceHolderConfigure类型的bean来配置属性加载的CustomBehavior。您可以使用此选项控制配置文件的顺序和覆盖属性。这取决于加载方式。