SpringBoot中应用属性的优先顺序观察

Observation on the priority order of application properties in Spring Boot

使用 Spring 云配置服务器时,我观察到以下行为。如果我对行为的假设是正确的,请告诉我。

  1. 如果 application-${env}.yaml/properties 设置了 server.port 属性,我无法覆盖该值,即使传递 -Dserver.port
  2. 如果我不继承 spring 云配置中定义的 属性,那么我将能够提供应用程序 application.yaml/property 中的值
  3. 如果 属性 是在应用程序的 application.property/yaml 中定义的,我可以通过传递 -Dserver.port 选项来覆盖命令行中的值。

根据上述行为我的假设是否正确。

是的,spring默认情况下无法覆盖云配置值。我们可以更改为覆盖 属性 pring.cloud.config.allowOverride=true

https://cloud.spring.io/spring-cloud-static/spring-cloud.html#overriding-bootstrap-properties