SpringCloud + Nacos配置文件加载顺序和优先级详解
Spring Cloud Nacos Config 的配置文件加载顺序和优先级如下:
- 外部配置文件:在启动 Spring Boot 应用时通过命令行参数指定的外部配置文件,如
java -jar yourapp.jar --spring.config.location=file:/path/to/application.properties
。 - 配置中心的配置文件:Nacos Config 中的配置文件,按照 Data ID 和 Group 从 Nacos 服务器加载。
- 本地配置文件:位于
file:/${user.home}/${spring.config.name}/${spring.config.name}.properties
或file:/${user.home}/${spring.config.name}/${spring.config.name}.yml
的本地配置文件。 - 默认配置文件:位于
classpath:/application.properties
或classpath:/application.yml
的默认配置文件。
在所有这些位置中,优先级从高到低是:外部配置文件 > 配置中心的配置文件。也就是说,如果在 Nacos 中有相同的配置项,并且该配置项也通过外部配置文件或本地配置文件进行了覆盖,那么最终生效的是外部配置文件或本地配置文件中的值。
具体的配置优先级如下:
bootstrap.yml
或bootstrap.properties
中的spring.cloud.nacos.config
部分配置- 环境变量
- JVM 系统属性
- 外部配置文件(如命令行参数指定的
--spring.config.location
) - 本地配置文件(如
application.properties
) - 配置中心的配置文件(Data ID 和 Group 指定的配置)
注意:bootstrap.yml
或 bootstrap.properties
的优先级高于其他配置源。
在实际使用中,可以通过设置spring.cloud.nacos.config.extension-configs[n].data-id
、spring.cloud.nacos.config.extension-configs[n].group
、spring.cloud.nacos.config.extension-configs[n].refresh
等属性来指定加载的 Data ID 和 Group,以及是否启用自动刷新。
示例代码:
spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
namespace: 001f2e3a-4d37-436e-9dff-010hyc45kab
group: DEFAULT_GROUP
extension-configs:
- data-id: common.properties
group: DEFAULT_GROUP
refresh: true
在这个配置中,除了默认的配置中心配置文件之外,还会额外加载common.properties
配置文件,并且开启自动刷新。
评论已关闭