I-L*_*Kuo 13 java spring spring-boot spring-config
Spring 有明确的加载外部化配置的顺序。
然而,来自Spring Cloud Config 的配置似乎有明显的遗漏。有谁知道 Spring Cloud Config 在上面的位置
awg*_*tek 11
正如其他人所说,配置服务器是第一位的。如果您尝试使用本地属性(即)覆盖配置服务器的属性application-local.yml,那么您需要向配置服务器添加两个属性**:
spring.cloud.config.allowOverride=true\nspring.cloud.config.overrideNone=true\nRun Code Online (Sandbox Code Playgroud)\n根据文档:
\n\n\n通过引导上下文添加到应用程序的属性源通常是“远程”的(例如,来自配置服务器),并且默认情况下它们不能在本地覆盖。如果您希望应用程序使用自己的系统属性或配置文件覆盖远程属性,则远程属性源必须通过设置 spring.cloud.config.allowOverride=true 来授予其权限(它不会\xe2\ x80\x99 无法在本地设置此\n)。设置该标志后,就会有一些更细粒度的设置\n来控制远程属性相对于系统\n属性和应用程序\xe2\x80\x99s本地配置的位置:\nspring.cloud.config.overrideNone=true 进行覆盖使用任何本地\n属性源,并且\nspring.cloud.config.overrideSystemProperties=false 如果只有系统\n属性和环境变量应覆盖远程设置,而不\n本地配置文件。
\n
另请参阅有关使用通过系统/命令行属性进行覆盖的内容。spring.cloud.config.override-system-properties=false上面引用的文档有不一致的地方,我从引用中删除了它。
请注意,如果您希望远程配置服务器覆盖本地属性文件源,但不覆盖本地系统属性或环境属性,请在配置服务器中添加以下内容:
\nspring.cloud.config.allowOverride=true\nspring.cloud.config.overrideNone=false\nspring.cloud.config.overrideSystemProperties=false\nRun Code Online (Sandbox Code Playgroud)\n** 在这种情况下,该overrideSystemProperties值将被忽略。看org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration#insertPropertySources
注意:以上所有内容均适用于 Spring Boot 2.3.x。版本 2.4.x 使用备用加载优先级。请参阅https://github.com/spring-cloud/spring-cloud-config/issues/1856
\n| 归档时间: |
|
| 查看次数: |
3293 次 |
| 最近记录: |