nacos的配置文件列表 和项目结构如上图: 项目和配置文件如图,项目中每个模块是怎么匹配具体自己的配置文件的
项目中每个模块(如 bejoy-auth
、bejoy-gateway
等)匹配 Nacos 中“自身配置文件”的核心逻辑是:通过「模块名 + 环境 + Nacos 分组」三者组合,与 Nacos 中配置的 Data ID
和 Group
精准匹配。
具体匹配流程
-
模块自身的“应用名”配置
每个模块(如bejoy-auth
)的配置文件(如bootstrap.yml
)中,会指定spring.application.name
,值为模块名(比如bejoy-auth
)。 -
环境与分组的激活
同时会配置spring.profiles.active=dev
(激活开发环境),以及 Nacos 配置的group=dev
(指定从dev
分组拉取配置)。 -
Nacos 配置的
Data ID
规则
Spring Cloud 会按照「spring.application.name
-spring.profiles.active
.格式」的规则,生成要拉取的Data ID
。
比如:bejoy-auth
模块 +dev
环境 → 要拉取的Data ID
是bejoy-auth-dev.yml
。 -
分组(Group)的过滤
同时会过滤 Nacos 中Group=dev
的配置,确保从开发环境分组中获取配置。
举个例子(以 bejoy-auth
模块为例)
- 模块内
bootstrap.yml
关键配置:spring: application: name: bejoy-auth # 模块名,对应 Nacos Data ID 前缀 profiles: active: dev # 激活 dev 环境 cloud: nacos: config: server-addr: NACOS_ADDRESS # Nacos 地址 group: dev # 分组为 dev file-extension: yml # 配置文件格式为 yml
- Nacos 中匹配:
会拉取Data ID = bejoy-auth-dev.yml
+Group = dev
的配置文件,从而实现“模块专属配置”的加载。
补充:通用配置的共享
此外,Nacos 中还有 application-dev.yml
这类“通用配置”,会被所有模块(在 dev
环境下)优先加载,模块专属配置(如 bejoy-auth-dev.yml
)会覆盖通用配置中重复的部分,实现“通用 + 专属”的配置分层管理。