项目使用配置

spring:
  config:
    activate:
      on-profile: local
    import:
      - classpath:config/application-local.yml
      - classpath:config/application-mq-local.yml
      - classpath:config/application-db-local.yml
      - optional:nacos:application-local.yml?group=${spring.application.name}-adapter
      - optional:nacos:application-mq-local.yml?group=${spring.application.name}-adapter
      - optional:nacos:application-db-local.yml?group=${spring.application.name}-adapter  
1. spring.config.activate.on-profile: local

含义:这是一个条件激活开关。
作用:这段配置只有在你启动项目时指定了 --spring.profiles.active=local(或者在 application.yml 中默认激活了 local)时才会生效。
目的:实现环境隔离。比如在开发环境(local)用这套规则,在生产环境(prod)可能用另一套规则。

2. spring.config.import

这是 Spring Boot 2.4+ 引入的新特性,用来导入其他配置文件或配置源。这里的导入顺序非常重要,后面的会覆盖前面的同名属性。

2.1 加载本地文件(classpath:config/...
- classpath:config/application-local.yml
- classpath:config/application-mq-local.yml
- classpath:config/application-db-local.yml

含义:从类路径(即 resources 目录)下的 config 文件夹中,加载三个本地的 YML 文件。
作用:这是基础配置。程序启动时,首先会把本地 config 目录下的数据库、消息队列等配置加载进来。这确保了即使没有 Nacos,程序也能跑起来。

2.2 加载远程 Nacos 配置(optional:nacos:...
- optional:nacos:application-local.yml?group=${spring.application.name}-adapter
- optional:nacos:application-mq-local.yml?group=${spring.application.name}-adapter
- optional:nacos:application-db-local.yml?group=${spring.application.name}-adapter

这部分是实现“动态获取配置”的关键。

  • optional:
    含义:可选。如果 Nacos 服务连不上,或者对应的配置文件不存在,程序不会报错退出,而是会忽略这一步,继续使用前面加载的本地配置。
    作用:保证开发环境的容错性。即使本地没开 Nacos 服务,代码也能正常启动。
  • nacos::
    含义:指定这是一个 Nacos 配置源。
    -application-local.yml
    含义:这是 Nacos 中的 Data ID。
    逻辑:它会去 Nacos 服务器查找名为 application-local.yml的配置。
  • ?group=${spring.application.name}-adapter
    含义:指定 Nacos 的分组(Group)。
  • ${spring.application.name}:这是一个占位符,会被替换为你的服务名(例如 user-service)。
    最终效果:它会去名为 user-service-adapter的分组下查找配置。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐