一、本分析基于以下应用版本:
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注入的值才能无重启自动刷新。
网友评论