# 环境配置文件说明 ## 配置文件结构 项目采用多环境配置,共包含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. 检查应用日志中的数据库连接信息(注意:密码不会显示)