😆

SpringBootの外部設定ファイルはpropertiesよりymlを使おう

2021/06/26に公開

springbootの外部設定ファイル

DB情報など、コード上にハードコーディングしたくない値を、設定ファイルに外部化して扱うことが推奨されます。
外部設定ファイルの形は2種類あり

  • properties形式
  • yml形式
    です。実際にどのように書けて、違いがでるのか見ていきます。

properties形式

application.properties
spring.profiles.active=local
spring.jpa.database=mysql
spring.jpa.hibernate.ddl-auto=update
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.sql.init.mode=always
spring.messages.basename=messages
spring.messages.encoding=UTF-8

一行で書くことができる形式がpropertiesファイルの特徴です。
デメリットとしては、

  • springのように一番上の階層を毎回書く必要がある
  • =以降の設定値が見づらい
    があると思います。

yml形式

application.yml
spring:
  profiles:
    active: local
  jpa:
    database: mysql
    hibernate:
      ddl-auto: update
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
  sql:
    init:
      mode: always
  messages:
    basename: messages
    encoding: UTF-8

インデントで階層式に設定値を管理します。
propertiesよりも設定の階層が見えるので変更が合った場合、見つけやすいと思います。

見た目の好みもありますが、記述量が減らせて、階層管理できるymlのほうが、見やすく、
管理しやすいかなという印象があります!

Discussion