各个配置文件的优先级
当前配置文件如下:
spring: profiles: active: dev cloud: nacos: config: server-addr: ${nacos.server-addr} username: ${nacos.username} password: ${nacos.password} namespace: tsp-${spring.profiles.active} prefix: project
优先级:userservice-dev.yml(当前环境配置) > userservice.yml(nacos上的)> application.yml(本地的)
本地配置文件中的优先级
spring: application: name: nacos-config-multi main: allow-bean-definition-overriding: true cloud: nacos: username: ${nacos.username} password: ${nacos.password} config: server-addr: ${nacos.server-addr} namespace: ${nacos.namespace} # 用于共享的配置文件 shared-configs: - data-id: common-mysql.yaml group: SPRING_CLOUD_EXAMPLE_GROUP - data-id: common-redis.yaml group: SPRING_CLOUD_EXAMPLE_GROUP - data-id: common-base.yaml group: SPRING_CLOUD_EXAMPLE_GROUP...... # 常规配置文件 # 优先级大于 shared-configs,在 shared-configs 之后加载 extension-configs: - data-id: nacos-config-advanced.yaml group: SPRING_CLOUD_EXAMPLE_GROUP refresh: true - data-id: nacos-config-base.yaml group: SPRING_CLOUD_EXAMPLE_GROUP refresh: true
-
扩展配置(extension-configs) > 共享配置(shared-configs)
-
同为扩展配置,存在如下优先级关系:extension-configs[3] > extension-configs[2] > extension-configs[1] > extension-configs[0]
-
同为共享配置,存在如下优先级关系:shared-configs[3] > shared-configs[2] > shared-configs[1] > shared-configs[0]
实现本地配置优先
spring: cloud: config: # 如果本地配置优先级高,那么 override-none 设置为 true,包括系统环境变量、本地配置文件等配置 override-none: true # 如果想要远程配置优先级高,那么 allow-override 设置为 false,如果想要本地配置优先级高那么 allow-override 设置为 true allow-override: true # 只有系统环境变量或者系统属性才能覆盖远程配置文件的配置,本地配置文件中配置优先级低于远程配置;注意本地配置文件不是系统属性 override-system-properties: false
注意:一定要配置到远程配置(nacos)上,否则不生效
来源地址:https://blog.csdn.net/Lemon_MY/article/details/127335271