♥ You are here: Home > IT技术 > Alibaba Nacos在Spring Cloud中的配置加载顺序超详细分析结果

Alibaba Nacos在Spring Cloud中的配置加载顺序超详细分析结果

by | 没有评论

一、本分析基于以下应用版本:

1、JDK:OpenJDK 11

2、SpringBoot:2.3.0.RELEASE

3、SpringCloud:Hoxton.SR4

4、Nacos:2.2.1.RELEASE

二、bootstrap.properties 配置信息如下:

# 环境参数 dev,sit,prod
spring.profiles.active=dev
spring.application.name=demo-core
spring.cloud.nacos.config.server-addr=http://***
pring.cloud.nacos.config.username=******
spring.cloud.nacos.config.password=******
spring.cloud.nacos.config.group=LDC_GROUP


spring.cloud.nacos.config.extension-configs[0].data-id=${spring.application.name}-ext.properties
spring.cloud.nacos.config.extension-configs[0].group=LDC_GROUP
spring.cloud.nacos.config.extension-configs[0].refresh=true

spring.cloud.nacos.config.extension-configs[1].data-id=${spring.application.name}-ext1.properties
spring.cloud.nacos.config.extension-configs[1].group=LDC_GROUP
spring.cloud.nacos.config.extension-configs[1].refresh=true

spring.cloud.nacos.config.shared-configs[0].data-id=${spring.application.name}-share.properties
spring.cloud.nacos.config.shared-configs[0].group=LDC_GROUPP
spring.cloud.nacos.config.shared-configs[0].refresh=true

# 生产环境或测试环境去掉,个人调试时可以指定
spring.cloud.nacos.config.namespace=wenda

三、测试结果分析总结如下:

1、demo-core-dev.properties与demo-core.properties

在以上设置中,demo-core.properties会自动加载,无需再额外指定。同时,若demo-core-dev.properties和demo-core.properties有相同的配置参数,则以demo-core-dev.properties中的值为准。demo-core.properties不会对demo-core-dev.properties中的相同参数产生覆盖。

2、extension-configs和shared-configs都不会覆盖demo-core.properties和demo-core-dev.properties中相同的参数配置。

3、extension-configs和shared-configs若存在相同参数,则extension-configs中的参数为准,且跟extension-configs和shared-configs的配置顺序无关

4、extension-configs的集合配置中若存在相同参数,也只以顺序有关,即谁在后面系统就使用谁的参数值。shared-configs集也是样。

5、若在Nacos中nacos.core.auth.enabled设为了true,则配置文件中必须指定spring.cloud.nacos.config.password和spring.cloud.nacos.config.group的值

6、必须在类中加入@RefreshScope,@Value注入的值才能无重启自动刷新。

Comments

0 Comments

发表评论