You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

application.properties多环境构建时指定对应环境变量的规则在哪配置

环境变量自动适配方案

你可以根据你的技术栈选择以下任意一种实现方式:

方案1:Spring Boot 原生Profile机制(最常用)

这是Spring Boot自带的环境区分能力,无需额外引入工具:

  • 拆分配置文件,在resources目录下新增两个环境专属配置:
    • 开发环境:application-dev.properties,写入专属配置 spring.datasource.username=${DB.USER.DEV}
    • 生产环境:application-prod.properties,写入专属配置 spring.datasource.username=${DB.USER.PROD}
  • 公共配置统一放在原来的application.properties中
  • 启动应用时指定激活的环境即可自动加载对应配置:
    • 开发环境启动命令追加参数:--spring.profiles.active=dev
    • 生产环境启动命令追加参数:--spring.profiles.active=prod

方案2:构建工具动态替换(构建阶段就固定配置值)

如果你希望在打包构建的时候就把对应值写入配置文件,不用在启动时指定,可以用Maven/Gradle的Profile能力,以Maven为例:

  • 在pom.xml中配置两个构建Profile:
<profiles>
  <profile>
    <id>dev</id>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
      <db.user>${DB.USER.DEV}</db.user>
    </properties>
  </profile>
  <profile>
    <id>prod</id>
    <properties>
      <db.user>${DB.USER.PROD}</db.user>
    </properties>
  </profile>
</profiles>
  • 开启资源过滤,在pom的build配置中添加:
<resources>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
  </resource>
</resources>
  • 把application.properties中的对应配置改成spring.datasource.username=@db.user@
  • 构建时指定Profile即可自动替换:
    • 开发环境构建命令:mvn clean package -Pdev
    • 生产环境构建命令:mvn clean package -Pprod

方案3:CI/CD 流水线注入(无需修改代码配置)

如果你用Git自带的CI/CD能力(GitHub Actions/GitLab CI等),可以直接在流水线中统一处理:

  • 在application.properties中统一写通用占位符:spring.datasource.username=${DB_USER}
  • 配置CI流水线的dev构建阶段,设置环境变量DB_USER=${DB.USER.DEV}
  • 配置CI流水线的prod构建阶段,设置环境变量DB_USER=${DB.USER.PROD}
  • 不同环境构建时会自动注入对应的值,无需修改项目代码配置

注意:Spring Boot对环境变量的读取有默认规则,会自动转换点号为下划线、忽略大小写,如果遇到变量读取失败的情况,可把Git中存储的环境变量名改为下划线格式(如DB_USER_DEV),兼容性更好。

内容的提问来源于stack exchange,提问作者Kerk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:06:04