使用spring cloud config远程配置中心作为spring应用的配置时,如果想修改某些属性,需要去修改远程配置,这会导致共用该配置的所有人都一起受影响。有时侯我们只是想临时修改某个变量来为进行调试而已。
引用spring cloud config时,Spring cloud默认以远程配置为最高优先级,如果希望本地的配置文件(如application.yml或bootstrap.yml)的某些属性能覆盖远程的同名属性值,则需要在远程配置文件增加以下属性配置(以下所述属性均在PropertySourceBootstrapProperties):
- spring.cloud.config.overrideNone=true
该配置的含义是远程配置不覆盖本地配置(双重否定?太有才了)
true表示远程配置不覆盖本地同名属性
false表示远程配置覆盖本地同名属性 默认为false(远程配置同名属性覆盖本地配置同名属性)
注意:该属性参数值需要配置在远程配置文件中,配置在本地配置文件不生效(如application.yml或bootstrap.yml)
该属性的注释如下:
该设置为true,则外部属性(指远程配置)具有最低的优先级,不覆盖任何本地已经存在的属性配置值。
2)spring.cloud.config.allowOverride=true
该配置的含义是远程配置是否允许被本地属性覆盖 默认true 该属性必须配置在远程配置(在本地配置该属性是不能生效的),该参数默认为true不需要特别设置
该属性的注释如下:
注:这里如果把external properties写成远程配置属性还好理解一点
- spring.cloud.config.overrideSystemProperties=true
该配置的含义是远程是否覆盖系统配置 默认true 该属性必须配置在远程配置中(在本地配置该属性是不能生效的)。例如,如果希望在启动时可能通过环境变量或程序参数修改某个配置,需要将该属性在远程配置中设置为false。
例:
java –jar xxx.jar --spring.cloud.stream.bindings. BusInput.group= collector-local
系统配置指通过命令行参数或环境变量方式 指定配置属性值
转载自: https://blog.csdn.net/yousite1/article/details/109325224