Nacos配置文件加载顺序

问题引入:以下配置,springboot项目启动后会加载nacos的哪些配置文件?

spring:
  application:
    # 应用名称
    name: cacsiot-tsbms
  boot:
    admin:
      client:
        url: http://localhost:8989
  profiles:
    # 环境配置
    active: dev
  cloud:
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.0.200:8850
        # 命名空间
        namespace: ${spring.profiles.active}
      config:
        # 配置中心地址
        server-addr: 192.168.0.200:8850
        # 配置文件格式
        file-extension: yml
        # 共享配置
        shared-configs:
          - application.${spring.cloud.nacos.config.file-extension}
        # 命名空间
        namespace: ${spring.profiles.active}

配置解析

1.应用基本信息

  • 应用名称:cacsiot-tsbms
  • 激活的 Profile:dev(通过 spring.profiles.active 指定)

2.Nacos 配置

  • Nacos 服务器地址:192.168.0.200:8850
  • 命名空间:${spring.profiles.active},即 dev
  • 配置文件格式:yml
  • 共享配置: application.yml(通过 shared-configs 指定)

加载的 Nacos 配置文件

(1)共享配置文件

  • 文件名称:application.yml
  • 加载规则:
    • 通过 shared-configs 指定。
    • 加载时,dataId 为 application,group 为
      DEFAULT_GROUP(未指定 group 时默认使用 DEFAULT_GROUP),file-extension 为 yml。
  • 完整路径: dataId:application group:DEFAULT_GROUP namespace:dev

(2)服务特定配置文件

  • 文件名称:cacsiot-tsbms.yml(根据 spring.application.name 和 file-extension
    拼接)
  • 加载规则:
    • 默认情况下,Spring Cloud Nacos 会加载与 spring.application.name 同名的配置文件。

    • dataId 为 cacsiot-tsbms,group 为 DEFAULT_GROUP,file-extension 为 yml。

  • 完整路径:
    • dataId:cacsiot-tsbms
    • group:DEFAULT_GROUP
    • namespace:dev

(3)Profile 特定配置文件(如果存在)

  • 文件名称:cacsiot-tsbms-dev.yml

  • 加载规则: 如果 Nacos 配置中心存在与 spring.application.name 和激活的 Profile
    对应的配置文件,则会加载。 dataId 为 cacsiot-tsbms-dev,group 为
    DEFAULT_GROUP,file-extension 为 yml。

  • 完整路径:

    • dataId:cacsiot-tsbms-dev
    • group:DEFAULT_GROUP
    • namespace:dev

加载顺序与优先级

  1. 共享配置文件:application.yml
  2. 服务特定配置文件:cacsiot-tsbms.yml
  3. Profile 特定配置文件(如果存在):cacsiot-tsbms-dev.yml

优先级:后加载的配置会覆盖先加载的配置。例如,cacsiot-tsbms-dev.yml 中的配置会覆盖 cacsiot-tsbms.yml 和 application.yml 中的同名配置。

总结
项目启动后,会按照以下顺序从 Nacos 配置中心加载配置文件:
在这里插入图片描述

注意事项:

  1. 确保 Nacos 配置中心中存在上述配置文件,否则会导致配置加载失败。
  2. 如果 cacsiot-tsbms-dev.yml 不存在,则不会加载该配置文件。

补充说明

spring.profiles.active 配置

1、配置名称

  • 配置项:spring.profiles.active
  • 作用:用于指定当前激活的 Spring Profile(环境配置)。

2、工作原理

  • Profile 机制:Spring Boot 通过 Profile 机制实现配置的动态加载。

  • 配置加载顺序:

    1、加载默认配置(如 application.yml 或 application.properties)。
    2、根据 spring.profiles.active 的值,加载对应的 Profile 配置(如 application-dev.yml)。
    3、如果存在多个 Profile 配置,后加载的会覆盖先加载的。

  • 配置文件命名规则:

    1、默认配置文件:application.yml 或 application.properties。
    2、Profile 特定配置文件:application-{profile}.yml 或 application-{profile}.properties。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值