ENVIRONMENT-CONFIG.md 3.9 KB

环境配置说明

配置文件结构

项目使用YAML格式的配置文件,支持多环境配置:

src/main/resources/
├── application.yml          # 主配置文件
├── application-dev.yml      # 开发环境配置
├── application-test.yml     # 测试环境配置
└── application-prod.yml     # 生产环境配置

环境切换

1. 通过启动脚本

# 开发环境
start-dev.bat

# 测试环境
start-test.bat

# 生产环境
start-prod.bat

2. 通过命令行参数

# 开发环境
java -jar -Dspring.profiles.active=dev app.jar

# 测试环境
java -jar -Dspring.profiles.active=test app.jar

# 生产环境
java -jar -Dspring.profiles.active=prod app.jar

3. 通过环境变量

# Windows
set SPRING_PROFILES_ACTIVE=dev

# Linux/Mac
export SPRING_PROFILES_ACTIVE=dev

各环境配置详情

开发环境 (dev)

特点

  • 端口:8080
  • 文件路径:D:/dev/images/
  • 日志级别:DEBUG/TRACE
  • 缓存时间:1小时
  • 启用调试模式

适用场景

  • 本地开发
  • 功能调试
  • 单元测试

测试环境 (test)

特点

  • 端口:8081
  • 文件路径:/app/test/images/
  • 日志级别:INFO/DEBUG
  • 缓存时间:2小时
  • 启用性能监控
  • 日志文件输出

适用场景

  • 集成测试
  • 性能测试
  • 预发布验证

生产环境 (prod)

特点

  • 端口:80
  • 文件路径:/data/images/
  • 日志级别:WARN/INFO
  • 缓存时间:24小时
  • 性能优化配置
  • 安全限制
  • 监控配置

适用场景

  • 正式生产环境
  • 高并发场景
  • 稳定服务

配置项说明

核心配置

配置项 开发环境 测试环境 生产环境 说明
server.port 8080 8081 80 服务端口
thumbnail.file.prefix D:/dev/images/ /app/test/images/ /data/images/ 文件路径前缀
thumbnail.quality 0.8 0.7 0.9 图片质量
thumbnail.cache.max-age 3600 7200 86400 缓存时间(秒)

日志配置

环境 根日志级别 应用日志级别 文件输出
dev DEBUG TRACE
test INFO DEBUG
prod WARN INFO

性能配置

配置项 生产环境值 说明
performance.thread-pool.core-size 10 线程池核心大小
performance.thread-pool.max-size 50 线程池最大大小
performance.thread-pool.queue-capacity 1000 队列容量

安全配置

配置项 生产环境值 说明
security.rate-limit.enabled true 是否启用速率限制
security.rate-limit.requests-per-minute 100 每分钟请求限制

自定义配置

添加新的配置项

  1. 在相应的 application-{profile}.yml 文件中添加配置
  2. AppConfig.kt 中添加对应的获取方法
  3. 在需要使用的地方注入 AppConfig 并调用相应方法

示例:

# application-dev.yml
custom:
  feature:
    enabled: true
    timeout: 30
// AppConfig.kt
fun isCustomFeatureEnabled(): Boolean {
    return appContext.cfg().getBool("custom.feature.enabled") ?: false
}

fun getCustomTimeout(): Int {
    return appContext.cfg().getInt("custom.feature.timeout") ?: 30
}

配置文件优先级

  1. 命令行参数
  2. 环境变量
  3. application-{profile}.yml
  4. application.yml
  5. 默认值

常见问题

Q: 如何查看当前使用的配置文件?

A: 查看启动日志,会显示当前激活的profile和加载的配置文件。

Q: 配置修改后需要重启吗?

A: 是的,配置文件修改后需要重启应用才能生效。

Q: 如何在运行时获取当前环境?

A: 可以通过 AppConfig.getActiveProfile() 方法获取。

Q: 可以同时激活多个环境吗?

A: 可以,但建议只激活一个主环境,避免配置冲突。