spring cloud 集成nacos后配置加载优先级

项目中使用nacos统一管理配置,在本地开发时需要修改配置,发现启动时添加-Dxx=xx并不生效。

1
2
3
4
5
6
class  org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration

//获取到nacos的`PropertySource`
doInitialize
//设置优先级
insertPropertySources

通过上述nacos里面PropertySources获取如下属性来判配置优先级

  • spring.cloud.config.allowOverride (默认true)
  • spring.cloud.config.overrideNone (默认false)
  • spring.cloud.config.overrideSystemProperties (默认true)
allowOverride overrideNone overrideSystemProperties nacos优先级
false - - 最高
true false true 默认,最高
- true - 最低
- - true 高于systemEnvironment
- - false 低于systemEnvironment
- - - 最低

上述判断是从上往下判断,匹配就直接执行
如果存在systemEnvironment才会依据overrideSystemProperties判断相对systemEnvironment优先级