SpringBoot使用 nacos 会默认加载项目名配置文件
问题描述
boostrap.yml 配置如下
spring:
application:
name: cnblogs
cloud:
nacos:
config:
server-addr: http://ip:8848
namespace: d8b0df04-aa58-4a5b-b582-7d133b9e8b2c #命名空间ID
file-extension: yaml
username: nacos
password: nacos
extension-configs:
- data-id: server.yaml
group: DEFAULT_GROUP
refresh: true
从配置可以看到,我们是没有配置使用 cnblogs.yaml 的,但是 nacos 是会默认加载的,默认读取 ${spring.application.name}.${spring.cloud.nacos.config.file-extension}。
优先级依次递减
- spring.cloud.nacos.config.prefix
- spring.cloud.nacos.config.name
- spring.application.name
因为我们没有配置前面两个,所以默认使用了应用名称。
原理分析
具体代码可以查看 NacosPropertySourceLocator 的 locate() 方法