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}

优先级依次递减

  1. spring.cloud.nacos.config.prefix
  2. spring.cloud.nacos.config.name
  3. spring.application.name

因为我们没有配置前面两个,所以默认使用了应用名称。

原理分析

具体代码可以查看 NacosPropertySourceLocator 的 locate() 方法

posted @ 2024-04-13 12:54  strongmore  阅读(386)  评论(0编辑  收藏  举报