- 添加MyBatis-Plus和Druid数据源依赖 - 配置多环境数据库连接(dev/test/prod) - 实现PingPong支付核心功能模块 - 添加支付订单和记录表结构设计 - 集成MD5/SHA256签名算法及验证机制 - 支持支付回调处理和状态更新 - 添加预授权支付类型支持(AUTH/CAPTURE/VOID) - 实现收银台页面集成和跳转逻辑 - 添加完整的API接口文档和使用说明 - 配置Druid监控和安全管理 - 实现多环境配置文件分离管理 - 添加详细的架构设计和开发文档
191 lines
4.9 KiB
Markdown
191 lines
4.9 KiB
Markdown
# 环境配置文件说明
|
||
|
||
## 配置文件结构
|
||
|
||
项目采用多环境配置,共包含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支付
|
||
|
||
**使用方式**:
|
||
```bash
|
||
java -jar app.jar --spring.profiles.active=dev
|
||
```
|
||
|
||
### application-test.yml(测试环境)
|
||
|
||
**数据库配置**:
|
||
- 使用环境变量配置数据库连接
|
||
- 环境变量:
|
||
- `test.db.url` - 数据库连接URL
|
||
- `test.db.username` - 数据库用户名
|
||
- `test.db.password` - 数据库密码
|
||
- 使用测试模式的PingPong支付
|
||
|
||
**使用方式**:
|
||
```bash
|
||
# 设置环境变量
|
||
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模式)
|
||
|
||
**使用方式**:
|
||
```bash
|
||
# 设置环境变量
|
||
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
|
||
```
|
||
|
||
## 环境变量配置示例
|
||
|
||
### 测试环境环境变量
|
||
|
||
```bash
|
||
# 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"
|
||
```
|
||
|
||
```powershell
|
||
# 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"
|
||
```
|
||
|
||
### 生产环境环境变量
|
||
|
||
```bash
|
||
# 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"
|
||
```
|
||
|
||
```powershell
|
||
# 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中配置环境变量:
|
||
|
||
```yaml
|
||
# 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
|
||
```
|
||
|
||
```yaml
|
||
# 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` 中输入:`dev`、`test` 或 `prod`
|
||
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. 检查应用日志中的数据库连接信息(注意:密码不会显示)
|
||
|