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,導入文件優先級
高於默認配置
