spring cloud配置如何使用本地属性覆盖远程属性

时间:2017-05-05 08:37:05

标签: spring spring-cloud spring-cloud-config

我知道应该设置以下属性,但仍然对它们应该设置的位置感到困惑。

spring:
    cloud:
        config:
            allowOverride: true
            failFast: true
            overrideNone: false
春天云服务器端或客户端或远程git存储库上的

application.properties文件?

我在服务器端的application.yml中设置它们,但不能正常工作。

我尝试在远程git上的application.yml中设置,再次无法工作,希望你能给我一些帮助,谢谢。

2 个答案:

答案 0 :(得分:9)

我在远程git仓库中设置了以下配置。这次工作。

spring:
  cloud:
    config:
      allowOverride: true
      overrideNone: true
      overrideSystemProperties: false

答案 1 :(得分:1)

在Spring Cloud文档的Overriding the Values of Remote Properties部分中:

  

通过引导上下文添加到应用程序中的属性源通常是“远程”的(例如,从Config Server),默认情况下,除非在命令行上,否则它们不能在本地被覆盖。如果要允许您的应用程序使用其自己的系统属性或配置文件覆盖远程属性,则远程属性源必须通过设置spring.cloud.config.allowOverride=true来授予其权限(在本地设置无效)。

     

一旦设置了该标志,就会有一些更细粒度的设置来控制远程属性相对于系统属性和应用程序的本地配置的位置:spring.cloud.config.overrideNone=true被任何本地属性源覆盖,而{{1 }},如果只有系统属性和环境变量应该覆盖远程设置,而不是本地配置文件。

因此,必须在远程spring.cloud.config.overrideSystemProperties=false(例如,远程git存储库)中进行设置。如here所述:“应用程序无法自行决定可以覆盖远程源中的配置”。