Spring Boot 项目中,多种设置环境变量的方式

    22

在 Spring Boot 项目中,有多种设置环境变量的方式,我按照优先级从高到低列出:

  1. 命令行参数
java -jar app.jar --MYSQL_HOST=localhost
  1. 系统环境变量
# Linux/Mac
export MYSQL_HOST=localhost

# Windows (CMD)
set MYSQL_HOST=localhost

# Windows (PowerShell)
$env:MYSQL_HOST = "localhost"
  1. .env 文件: 在项目根目录创建 .env 文件:
MYSQL_HOST=localhost
MYSQL_PORT=3306

需要添加依赖:

implementation 'me.paulschwarz:spring-dotenv:4.0.0'
  1. IDE 环境变量设置
  • IntelliJ IDEA:

    1. 打开 "Run/Debug Configurations"
    2. 在 "Environment variables" 中添加
    3. 或者在 "VM options" 中添加 -DMYSQL_HOST=localhost
  • VS Code:

    1. 创建 .vscode/launch.json
    {
      "configurations": [{
        "type": "java",
        "name": "Spring Boot App",
        "env": {
          "MYSQL_HOST": "localhost"
        }
      }]
    }
    
  1. 配置文件
  • application.yml
spring:
  config:
    import: optional:file:.env[.properties]
  1. Docker 环境变量
ENV MYSQL_HOST=localhost

或者在运行时:

docker run -e MYSQL_HOST=localhost myapp
  1. Kubernetes ConfigMap/Secret
apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  MYSQL_HOST: "localhost"

现在你有了多种设置环境变量的方式:

  1. 本地开发

    • 使用 .env 文件(最推荐)
    • 或在 IDE 中配置
    • 配置一次就可以一直使用
  2. 测试环境

    • 使用系统环境变量
    • 或使用命令行参数
    • 便于临时更改和测试
  3. 生产环境

    • 使用系统环境变量
    • 或使用容器环境变量
    • 更安全,更易于管理
  4. CI/CD 环境

    • 使用 CI/CD 平台的环境变量功能
    • 例如 GitHub Actions 的 Secrets

记住:

  1. 不同环境使用不同的设置方式
  2. 敏感信息优先使用环境变量
  3. 遵循优先级规则
  4. 保持模板文件更新
  5. 确保敏感信息不被提交到 Git

Comments | 0 评论
消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息