Files
MTKJPAY/CONFIG_MANAGEMENT.md
qiube 504ccabba1 docs(config): 添加配置文件管理说明并调整开发环境配置
- 创建 CONFIG_MANAGEMENT.md 详细说明配置文件结构和管理规范
- 为 mt-pay 和 mt-startup 模块分别创建生产环境配置文件
- 将前端访问地址从生产域名改为开发环境本地地址
- 更新 PayPal Webhook 配置为开发环境内网穿透地址
- 调整应用启动时的访问地址提示信息
- 优化数据库连接和服务器配置的环境变量支持
2025-12-26 16:05:53 +08:00

5.7 KiB
Raw Blame History

配置文件管理说明

📁 配置文件结构

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 启动

启动方式:

# 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 启动

启动方式:

java -jar mt-startup-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

📝 配置项说明

前端URL配置

开发环境 (application-dev.yml):

app:
  frontend:
    url: http://localhost:3000

生产环境 (application-prod.yml):

app:
  frontend:
    url: ${app.frontend.url:https://shopd.mtkj2025.com}

说明:

  • 开发环境固定使用 localhost:3000
  • 生产环境支持通过环境变量覆盖:-Dapp.frontend.url=https://your-domain.com

PayPal Webhook配置

开发环境 (application-dev.yml):

paypal:
  webhook-url: https://2646b437.r33.cpolar.top/api/paypal/webhook

生产环境 (application-prod.yml):

paypal:
  webhook-url: ${paypal.webhook-url:https://shopd.mtkj2025.com/api/paypal/webhook}

说明:

  • 开发环境使用内网穿透服务cpolar/ngrok
  • 生产环境使用域名,支持通过环境变量覆盖

🚀 部署流程

本地开发

  1. 确保使用dev配置

    • application.ymlspring.profiles.active: dev
    • 或启动时指定:--spring.profiles.active=dev
  2. 启动后端

    # IDE中直接运行
    # 或
    mvn spring-boot:run -Dspring-boot.run.profiles=dev
    
  3. 启动前端

    cd E:\MTKJPAY-FRONT
    npm run dev
    
  4. 访问地址

    • 前端: http://localhost:3000
    • 后端API: http://localhost:8082/api

生产部署

  1. 打包应用

    cd E:\MTKJPAY
    mvn clean package -DskipTests
    
  2. 上传到服务器

    • 上传 mt-startup/target/mt-startup-0.0.1-SNAPSHOT.jar
  3. 启动应用使用prod配置

    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. 环境变量覆盖

生产环境支持通过环境变量或启动参数覆盖配置:

# 覆盖前端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代码中的默认值设置为开发环境值

@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代码中的默认值

📋 配置检查清单

开发环境

  • application.ymlspring.profiles.active: dev
  • application-dev.yml 中前端URL为 http://localhost:3000
  • application-dev.yml 中PayPal Webhook使用内网穿透
  • Java代码默认值为 http://localhost:3000

生产环境

  • application-prod.yml 中前端URL为 https://shopd.mtkj2025.com
  • application-prod.yml 中PayPal Webhook为 https://shopd.mtkj2025.com/api/paypal/webhook
  • 支持通过环境变量覆盖配置
  • 打包时使用 --spring.profiles.active=prod 启动

🔍 验证方法

验证开发环境配置

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

# 检查日志,应该看到:
# - 前端代理地址: http://localhost:3000

验证生产环境配置

# 启动应用
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配置