4.3. 設定管理
4.3.1. application.yml 構造
application.yml を基本設定ファイルとして使用し、プロファイルごとの設定は application-{profile}.yml に分離します。
src/main/resources/
├── application.yml # 共通設定
├── application-local.yml # ローカル開発
├── application-dev.yml # 開発サーバー
├── application-staging.yml # ステージング
└── application-prod.yml # プロダクション4.3.2. 共通設定の例
yaml
spring:
application:
name: flowin-api
profiles:
active: local
# データソース共通設定
datasource:
hikari:
connection-timeout: 30000
idle-timeout: 600000
max-lifetime: 1800000
leak-detection-threshold: 60000
# jOOQ
jooq:
sql-dialect: postgres
# Flyway
flyway:
enabled: true
locations: classpath:db/migration
validate-on-migrate: true
server:
port: 8080
servlet:
context-path: /api
logging:
level:
root: INFO
com.tienipia: DEBUG参考
データソース接続情報(URL、ユーザー名、パスワード)および HikariCP pool-size 設定はプロファイルごとの設定ファイルで管理します。詳細については データベース標準 ドキュメントを参照してください。
4.3.3. @ConfigurationProperties の使用
カスタム設定値は @Value の代わりに @ConfigurationProperties を使用し、タイプセーフな設定バインディングを適用します。
java
@ConfigurationProperties(prefix = "app.storage")
public record StorageProperties(
String uploadPath,
long maxFileSize,
List<String> allowedExtensions
) {}yaml
app:
storage:
upload-path: /data/uploads
max-file-size: 10485760
allowed-extensions:
- pdf
- png
- jpg