配置项目动态切换环境,更换配置文件的变量,一套配置,多种环境,可以避免频繁的更改配置文件。

根目录pom文件增加配置

<build>
    <resources>
          <resource>
             <directory>src/main/resources</directory>
              <filtering>true</filtering>
          </resource>
    </resources>
</build>

根目录pom文件配置多环境

<profiles>
        <!-- 开发 -->
        <profile>
            <id>dev</id>
            <activation>
                <!--默认激活配置-->
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!--当前环境-->
                <profile.name>dev</profile.name>
                <username>nacos</username>
                <!--Nacos配置中心地址-->
                <config.server-addr>127.0.0.1:8838</config.server-addr>
                <!--Nacos配置中心命名空间,用于支持多环境.这里必须使用ID,不能使用名称,默认为空-->
                <config.namespace>ae366cd6-0a87-4414-9a32-ba2a9a313e47</config.namespace>
                <!--Nacos配置分组名称-->
                <config.group>DEFAULT_GROUP</config.group>
                <!--Nacos服务发现地址-->
                <discovery.server-addr>127.0.0.1:8838</discovery.server-addr>
            </properties>
        </profile>
    </profiles>

配置文件获取变量

spring:
  application:
    # 应用名称
    name: app
  profiles:
    # 环境配置
    active: @profile.name@
  cloud:
    nacos:
      discovery:
        # 服务注册地址
        server-addr: @discovery.server-addr@
        namespace: @config.namespace@
      config:
        # 配置中心地址
        server-addr: @config.server-addr@
        namespace: @config.namespace@
        # 配置文件格式
        file-extension: yml
        # 共享配置
        shared-configs:
          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

idea选择环境进行切换

image-1682685833919