项目使用YAML格式的配置文件,支持多环境配置:
src/main/resources/
├── application.yml # 主配置文件
├── application-dev.yml # 开发环境配置
├── application-test.yml # 测试环境配置
└── application-prod.yml # 生产环境配置
# 开发环境
start-dev.bat
# 测试环境
start-test.bat
# 生产环境
start-prod.bat
# 开发环境
java -jar -Dspring.profiles.active=dev app.jar
# 测试环境
java -jar -Dspring.profiles.active=test app.jar
# 生产环境
java -jar -Dspring.profiles.active=prod app.jar
# Windows
set SPRING_PROFILES_ACTIVE=dev
# Linux/Mac
export SPRING_PROFILES_ACTIVE=dev
特点:
D:/dev/images/适用场景:
特点:
/app/test/images/适用场景:
特点:
/data/images/适用场景:
| 配置项 | 开发环境 | 测试环境 | 生产环境 | 说明 |
|---|---|---|---|---|
| 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 | 每分钟请求限制 |
application-{profile}.yml 文件中添加配置AppConfig.kt 中添加对应的获取方法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
}
A: 查看启动日志,会显示当前激活的profile和加载的配置文件。
A: 是的,配置文件修改后需要重启应用才能生效。
A: 可以通过 AppConfig.getActiveProfile() 方法获取。
A: 可以,但建议只激活一个主环境,避免配置冲突。