重点:文件加载优先级 bootstrap.yml 》 工程应用下application.yml > share.yml > share2.yml > common.yml > common2.yml > nacos-user-service,yml > nacos-user-service-dev.yml
可知相同配置项覆盖顺序 nacos-user-service-dev.yml > nacos-user-service,yml》common2.yml> common.yml > share2.yml > share.yml>工程应用下application.yml > 工程应用下bootstrap.yml
引入依赖:
<!--nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--加载bootstrp启动 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
新增bootstrap.yml文件
server:
port: 8071
spring:
application:
name: nacos-user-service
profiles:
active: dev
cloud:
nacos:
discovery:
# Nacos认证信息
username: nacos
password: nacos
# Nacos 服务发现与注册配置,其中子属性 server-addr 指定 Nacos 服务器主机和端口
server-addr: http://localhost:8848
# 注册到 nacos 的指定 namespace,默认为 public
namespace: public
#配置中心
config:
# Nacos帮助文档: https://nacos.io/zh-cn/docs/concepts.html
# Nacos认证信息
username: nacos
password: nacos
context-path: nacos
# 设置配置中心服务端地址
server-addr: http://localhost:8848
# Nacos 配置中心的namespace。需要注意,如果使用 public 的 namcespace ,请不要填写这个值,直接留空即可
namespace:
#文件结尾
file-extension: yml
group: dev #所属分组
#扩展配置 从上往下依次加载
extension-configs:
- dataId: common.yml
group: dev
refresh: true
- dataId: common2.yml
group: dev
refresh: true
# dataId: naco-user-service-datasource2.yml
# group: dev
# refresh: true
#共享配置 从上往下依次加载
shared-configs:
- dataId: share.yml
group: dev
refresh: true
- dataId: share2.yml
group: dev
refresh: true
# config:
# import: nacos:nacos-config-example.properties?refresh=true
testConfigValue: aaaaa22
testconfigValue: bbbbb23
在nacos配置中心新增文件用于测试
此时,微服务应用中存在4个文件bootstrap.yml,应用目录下的application.yml nacos-config配置中心中的group:dev下的nacos-user-service.yml和common.yml
加载文件顺序为:优先加载bootstrap.yml 然后加载应用目录下的application.yml 最后加载nacos-config配置中心的nacos-user-service.yml
测试如下:
发布一个http服务接口,打印从配置文件中load的常量
bootstrap.yml中配置的是
testConfigValue: aaaaa22
testconfigValue: bbbbb23
application.yml中配置的是
testConfigValue: a1
testconfigValue: b1
nacos-user-service-dev.yml中配置的是
没有配置该常量
访问接口:可见是读取的应用目录下的参数
然后再nacos-user-service-dev.yml中增加常量
testConfigValue: aaaaa12
testconfigValue: bbbbb13
再访问服务
如果在 common.yml中配置 且取消nacos-user-service-dev.yml中配置项
testConfigValue: aaaaa52
testconfigValue: bbbbb53
增加common2.yml 且取消nacos-user-service-dev.yml中配置项
testConfigValue: aaaaa62
testconfigValue: bbbbb63----------------------------------------------------------------------------------------------------------------
增加shared-configs
share.yml cccc1 dddd1
share2.yml cccc11 dddd22
将common.yml和common2.yml中的常量注释掉
可知覆盖顺序nacos-user-service-dev.yml > nacos-user-service,yml》common2.yml> common.yml > share2.yml > share1.yml>工程应用下application.yml >bootstrap.yml
加载顺序则相反
标签:service,配置,nacos,dev,user,config,yml,搭建 From: https://www.cnblogs.com/UUUz/p/18254921