Skip to content

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

TIENIPIA QUALIFIED STANDARD