Files
MTKJPAY/mt-pay/ENV_CONFIG.md
qiube 57062efd2d feat(pay): 集成PingPong支付功能并完善配置体系
- 添加MyBatis-Plus和Druid数据源依赖
- 配置多环境数据库连接(dev/test/prod)
- 实现PingPong支付核心功能模块
- 添加支付订单和记录表结构设计
- 集成MD5/SHA256签名算法及验证机制
- 支持支付回调处理和状态更新
- 添加预授权支付类型支持(AUTH/CAPTURE/VOID)
- 实现收银台页面集成和跳转逻辑
- 添加完整的API接口文档和使用说明
- 配置Druid监控和安全管理
- 实现多环境配置文件分离管理
- 添加详细的架构设计和开发文档
2025-12-18 17:40:15 +08:00

4.9 KiB
Raw Blame History

环境配置文件说明

配置文件结构

项目采用多环境配置共包含4个配置文件

  1. application.yml - 主配置文件(通用配置)
  2. application-dev.yml - 开发环境配置
  3. application-test.yml - 测试环境配置
  4. application-prod.yml - 生产环境配置

配置文件说明

application.yml主配置

包含所有环境的通用配置:

  • 应用名称
  • Druid监控配置
  • JPA配置
  • PingPong支付默认配置
  • 服务器配置

注意:主配置文件中不包含数据库连接信息,由各环境配置文件提供。

application-dev.yml开发环境

数据库配置

  • 使用阿里云RDS数据库已配置具体连接信息
  • 使用沙箱模式的PingPong支付

使用方式

java -jar app.jar --spring.profiles.active=dev

application-test.yml测试环境

数据库配置

  • 使用环境变量配置数据库连接
  • 环境变量:
    • test.db.url - 数据库连接URL
    • test.db.username - 数据库用户名
    • test.db.password - 数据库密码
  • 使用测试模式的PingPong支付

使用方式

# 设置环境变量
export test.db.url=jdbc:mysql://host:3306/dbname?...
export test.db.username=username
export test.db.password=password

# 启动应用
java -jar app.jar --spring.profiles.active=test

application-prod.yml生产环境

数据库配置

  • 使用环境变量配置数据库连接
  • 环境变量:
    • prod.db.url - 数据库连接URL
    • prod.db.username - 数据库用户名
    • prod.db.password - 数据库密码
  • 使用生产模式的PingPong支付build模式

使用方式

# 设置环境变量
export prod.db.url=jdbc:mysql://host:3306/dbname?...
export prod.db.username=username
export prod.db.password=password

# 启动应用
java -jar app.jar --spring.profiles.active=prod

环境变量配置示例

测试环境环境变量

# Linux/Mac
export test.db.url="jdbc:mysql://test-host:3306/test_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai"
export test.db.username="test_user"
export test.db.password="test_password"
# Windows PowerShell
$env:test.db.url="jdbc:mysql://test-host:3306/test_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai"
$env:test.db.username="test_user"
$env:test.db.password="test_password"

生产环境环境变量

# Linux/Mac
export prod.db.url="jdbc:mysql://prod-host:3306/prod_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai"
export prod.db.username="prod_user"
export prod.db.password="prod_password"
# Windows PowerShell
$env:prod.db.url="jdbc:mysql://prod-host:3306/prod_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai"
$env:prod.db.username="prod_user"
$env:prod.db.password="prod_password"

Docker部署环境变量

在Docker Compose或Kubernetes中配置环境变量

# docker-compose.yml
services:
  mt-pay:
    image: mt-pay:latest
    environment:
      - SPRING_PROFILES_ACTIVE=prod
      - prod.db.url=jdbc:mysql://prod-host:3306/prod_db?...
      - prod.db.username=prod_user
      - prod.db.password=prod_password
# kubernetes deployment
apiVersion: v1
kind: ConfigMap
metadata:
  name: mt-pay-config
data:
  SPRING_PROFILES_ACTIVE: "prod"
  prod.db.url: "jdbc:mysql://prod-host:3306/prod_db?..."
  prod.db.username: "prod_user"
---
apiVersion: v1
kind: Secret
metadata:
  name: mt-pay-secret
type: Opaque
stringData:
  prod.db.password: "prod_password"

IDE中切换环境

IntelliJ IDEA

  1. 打开 Run/Debug Configurations
  2. Active profiles 中输入:devtestprod
  3. 或者在 Environment variables 中设置环境变量

Eclipse

  1. 右键项目 -> Run As -> Run Configurations
  2. Arguments 标签页的 Program arguments 中添加:
    --spring.profiles.active=dev
    

配置优先级

Spring Boot配置加载顺序优先级从高到低

  1. 命令行参数
  2. 环境变量
  3. application-{profile}.yml
  4. application.yml

注意事项

  1. 开发环境:使用具体的数据库连接信息,方便本地开发
  2. 测试/生产环境:使用环境变量,提高安全性
  3. PingPong模式
    • dev: sandbox(沙箱)
    • test: test(测试)
    • prod: build(生产)
  4. 数据库密码:生产环境务必使用强密码,并通过环境变量或密钥管理服务管理
  5. 监控页面生产环境建议修改Druid监控页面的用户名和密码

验证配置

启动应用后,可以通过以下方式验证配置是否正确:

  1. 查看启动日志,确认加载的配置文件
  2. 访问 /druid/index.html 验证数据库连接
  3. 检查应用日志中的数据库连接信息(注意:密码不会显示)