nacos 配置优先级

nacos 配置优先级

spring:
  application:
    name: star
  profiles:
    active: dev
  cloud:
    nacos:
      config:
        file-extension: yml
        namespace:
        ext-config:
          - data-id: e.yml
            group: default
            refresh: true
        shared-dataids: sa.yml,sb.yml
        refreshable-dataids: r.yml

这里列出三类配置文件:

a:   star-dev.yml

b:   e.yml

c:      sa.yml,sb.yml

读取优先级从低到高, a < b < c,低优先级会覆盖高优先级,这个是不难理解的,先读公共配置,再读扩展配置,再读自己的配置,当然会以自己的配置为准。

nacos 配置下,如无特殊配置,本地配置不会生效。若要本地配置生效,需要在 star-dev.yml 中作如下配置,这三个配置是矛盾的,根据需要选择

spring:
  cloud:
    config:
      allow-override: true     // 允许nacos被本地文件覆盖
      override-none: true     // nacos不覆盖任何本地文件
      override-system-properties: true   // nacos 覆盖系统属性。注意本地配置文件不是系统属性

 

本地配置优先级:

1.命令行参数
2.来自java:comp/env的JNDI属性
3.Java系统属性(System.getProperties())
4.操作系统环境变量
5.RandomValuePropertySource配置的random.*属性值
6.jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件
7.jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件
8.--spring.config.location=C:/application.properties(它在这里)
9.jar包外部的application.properties或application.yml(不带spring.profile)配置文件
10.jar包内部的application.properties或application.yml(不带spring.profile)配置文件
11.@Configuration注解类上的@PropertySource
12.通过SpringApplication.setDefaultProperties指定的默认属性

bootstrap 优先级高于配置文件,但是项目内部配置文件高于 bootstrap,导入文件优先级

高于默认配置

posted on 2021-05-22 11:05  一直小飞猫  阅读(9660)  评论(0编辑  收藏  举报

导航