- 添加MyBatis-Plus和Druid数据源依赖 - 配置多环境数据库连接(dev/test/prod) - 实现PingPong支付核心功能模块 - 添加支付订单和记录表结构设计 - 集成MD5/SHA256签名算法及验证机制 - 支持支付回调处理和状态更新 - 添加预授权支付类型支持(AUTH/CAPTURE/VOID) - 实现收银台页面集成和跳转逻辑 - 添加完整的API接口文档和使用说明 - 配置Druid监控和安全管理 - 实现多环境配置文件分离管理 - 添加详细的架构设计和开发文档
4.9 KiB
4.9 KiB
环境配置文件说明
配置文件结构
项目采用多环境配置,共包含4个配置文件:
- application.yml - 主配置文件(通用配置)
- application-dev.yml - 开发环境配置
- application-test.yml - 测试环境配置
- 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- 数据库连接URLtest.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- 数据库连接URLprod.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
- 打开
Run/Debug Configurations - 在
Active profiles中输入:dev、test或prod - 或者在
Environment variables中设置环境变量
Eclipse
- 右键项目 ->
Run As->Run Configurations - 在
Arguments标签页的Program arguments中添加:--spring.profiles.active=dev
配置优先级
Spring Boot配置加载顺序(优先级从高到低):
- 命令行参数
- 环境变量
- application-{profile}.yml
- application.yml
注意事项
- 开发环境:使用具体的数据库连接信息,方便本地开发
- 测试/生产环境:使用环境变量,提高安全性
- PingPong模式:
- dev:
sandbox(沙箱) - test:
test(测试) - prod:
build(生产)
- dev:
- 数据库密码:生产环境务必使用强密码,并通过环境变量或密钥管理服务管理
- 监控页面:生产环境建议修改Druid监控页面的用户名和密码
验证配置
启动应用后,可以通过以下方式验证配置是否正确:
- 查看启动日志,确认加载的配置文件
- 访问
/druid/index.html验证数据库连接 - 检查应用日志中的数据库连接信息(注意:密码不会显示)