# 配置文件管理说明 ## 📁 配置文件结构 ### mt-pay 模块 ``` mt-pay/src/main/resources/ ├── application.yml # 基础配置,只设置active profile ├── application-dev.yml # 开发环境配置(本地开发) ├── application-prod.yml # 生产环境配置(服务器部署) └── application-test.yml # 测试环境配置(可选) ``` ### mt-startup 模块 ``` mt-startup/src/main/resources/ ├── application.yml # 基础配置,只设置active profile ├── application-dev.yml # 开发环境配置(本地开发) └── application-prod.yml # 生产环境配置(服务器部署) ``` ## 🔧 环境配置说明 ### 开发环境(dev) **配置文件**: `application-dev.yml` **配置内容**: - 前端URL: `http://localhost:3000`(本地开发) - PayPal Webhook: 使用内网穿透(如 `https://xxx.cpolar.top/api/paypal/webhook`) - 数据库: 开发环境数据库连接 **使用场景**: - 本地开发调试 - IDE中直接运行 - 使用 `--spring.profiles.active=dev` 启动 **启动方式**: ```bash # IDE中运行 # 或命令行 java -jar mt-startup-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev ``` ### 生产环境(prod) **配置文件**: `application-prod.yml` **配置内容**: - 前端URL: `https://shopd.mtkj2025.com`(生产域名) - PayPal Webhook: `https://shopd.mtkj2025.com/api/paypal/webhook` - 数据库: 生产环境数据库连接(通过环境变量配置) **使用场景**: - 服务器部署 - 生产环境运行 - 使用 `--spring.profiles.active=prod` 启动 **启动方式**: ```bash java -jar mt-startup-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod ``` ## 📝 配置项说明 ### 前端URL配置 **开发环境** (`application-dev.yml`): ```yaml app: frontend: url: http://localhost:3000 ``` **生产环境** (`application-prod.yml`): ```yaml app: frontend: url: ${app.frontend.url:https://shopd.mtkj2025.com} ``` **说明**: - 开发环境固定使用 `localhost:3000` - 生产环境支持通过环境变量覆盖:`-Dapp.frontend.url=https://your-domain.com` ### PayPal Webhook配置 **开发环境** (`application-dev.yml`): ```yaml paypal: webhook-url: https://2646b437.r33.cpolar.top/api/paypal/webhook ``` **生产环境** (`application-prod.yml`): ```yaml paypal: webhook-url: ${paypal.webhook-url:https://shopd.mtkj2025.com/api/paypal/webhook} ``` **说明**: - 开发环境使用内网穿透服务(cpolar/ngrok) - 生产环境使用域名,支持通过环境变量覆盖 ## 🚀 部署流程 ### 本地开发 1. **确保使用dev配置** - `application.yml` 中 `spring.profiles.active: dev` - 或启动时指定:`--spring.profiles.active=dev` 2. **启动后端** ```bash # IDE中直接运行 # 或 mvn spring-boot:run -Dspring-boot.run.profiles=dev ``` 3. **启动前端** ```bash cd E:\MTKJPAY-FRONT npm run dev ``` 4. **访问地址** - 前端: `http://localhost:3000` - 后端API: `http://localhost:8082/api` ### 生产部署 1. **打包应用** ```bash cd E:\MTKJPAY mvn clean package -DskipTests ``` 2. **上传到服务器** - 上传 `mt-startup/target/mt-startup-0.0.1-SNAPSHOT.jar` 3. **启动应用(使用prod配置)** ```bash java -jar mt-startup-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod ``` 4. **访问地址** - 前端: `https://shopd.mtkj2025.com` - 后端API: `https://shopd.mtkj2025.com/api`(通过Nginx代理) ## ⚠️ 重要提示 ### 1. 配置文件隔离 - ✅ **开发环境配置不会影响生产环境** - ✅ **生产环境配置不会影响本地开发** - ✅ **打包时不会覆盖服务器配置** ### 2. 环境变量覆盖 生产环境支持通过环境变量或启动参数覆盖配置: ```bash # 覆盖前端URL java -jar app.jar --spring.profiles.active=prod \ -Dapp.frontend.url=https://your-domain.com # 覆盖PayPal Webhook java -jar app.jar --spring.profiles.active=prod \ -Dpaypal.webhook-url=https://your-domain.com/api/paypal/webhook ``` ### 3. 默认值设置 Java代码中的默认值设置为开发环境值: ```java @Value("${app.frontend.url:http://localhost:3000}") private String frontendUrl; ``` - 如果配置文件中没有设置,使用默认值(开发环境) - 如果配置文件中设置了,使用配置文件的值 ### 4. 配置文件优先级 Spring Boot配置优先级(从高到低): 1. 命令行参数(`--spring.profiles.active=prod`) 2. 环境变量 3. `application-{profile}.yml` 4. `application.yml` 5. Java代码中的默认值 ## 📋 配置检查清单 ### 开发环境 - [x] `application.yml` 中 `spring.profiles.active: dev` - [x] `application-dev.yml` 中前端URL为 `http://localhost:3000` - [x] `application-dev.yml` 中PayPal Webhook使用内网穿透 - [x] Java代码默认值为 `http://localhost:3000` ### 生产环境 - [x] `application-prod.yml` 中前端URL为 `https://shopd.mtkj2025.com` - [x] `application-prod.yml` 中PayPal Webhook为 `https://shopd.mtkj2025.com/api/paypal/webhook` - [x] 支持通过环境变量覆盖配置 - [x] 打包时使用 `--spring.profiles.active=prod` 启动 ## 🔍 验证方法 ### 验证开发环境配置 ```bash # 启动应用 java -jar app.jar --spring.profiles.active=dev # 检查日志,应该看到: # - 前端代理地址: http://localhost:3000 ``` ### 验证生产环境配置 ```bash # 启动应用 java -jar app.jar --spring.profiles.active=prod # 检查日志,应该看到: # - 前端地址: https://shopd.mtkj2025.com # - Webhook URL: https://shopd.mtkj2025.com/api/paypal/webhook ``` ## 📚 相关文档 - `DEPLOYMENT_README.md` - 部署说明 - `DOMAIN_CONFIG_SUMMARY.md` - 域名配置总结 - `NGINX_SSL_CONFIG.md` - Nginx SSL配置