问题
I know should set following properties, but still confused about where they should be set.
spring:
cloud:
config:
allowOverride: true
failFast: true
overrideNone: false
application.properties file on spring cloud server side or client side or remote git repository?
I set them in application.yml on server side, but don't work.
I try set in application.yml on remote git, and again not work, hope you could give me some help, thanks.
回答1:
I set the following configurations in remote git repo. It works this time.
spring:
cloud:
config:
allowOverride: true
overrideNone: true
overrideSystemProperties: false
回答2:
From the Overriding the Values of Remote Properties section in Spring Cloud documentation:
The property sources that are added to you application by the bootstrap context are often "remote" (e.g. from a Config Server), and by default they cannot be overridden locally, except on the command line. If you want to allow your applications to override the remote properties with their own System properties or config files, the remote property source has to grant it permission by setting
spring.cloud.config.allowOverride=true
(it doesn’t work to set this locally).Once that flag is set there are some finer grained settings to control the location of the remote properties in relation to System properties and the application’s local configuration:
spring.cloud.config.overrideNone=true
to override with any local property source, andspring.cloud.config.overrideSystemProperties=false
if only System properties and env vars should override the remote settings, but not the local config files.
So, it must be set in the remote application.yml
(e.g. remote git repository). As noted here: "an app can't decide on its own that it can override configuration from the remote source".
来源:https://stackoverflow.com/questions/43800256/how-spring-cloud-config-use-local-property-override-remote-property