😆
SpringBootの外部設定ファイルはpropertiesよりymlを使おう
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