LoginSignup
0
2

More than 1 year has passed since last update.

SpringBoot 2.4以降で環境ごとの定義ファイルと共通定義ファイルを読み込む(includeが使えなくなった)

Last updated at Posted at 2021-06-05

概要

SpringBoot 2.4以降で、従来できていたapplication.yml関連の複数に分けている設定ファイルのincludeができなくなり、別の方法で分割したyamlファイルを読み込むようにしないといけないようです。
https://spring.io/blog/2020/08/14/config-file-processing-in-spring-boot-2-4

色々調べながら実装したのですが、理解するのに時間がかかったので、備忘のために記録として残します。

yamlファイルの構成

以下4つのYAMLファイルを用意しています。
application-commonは環境に依存しない共通の設定を管理し、***-local***-stagingは環境に依存した設定を管理しているYAMLファイルです。(local=ローカル開発環境、staging=ステージング環境)

.
├── application.yml
├── application-common.yml
├── application-local.yml
├── application-staging.yml

spring.profiles.groupを使って複数に分かれているyamlを読み込む設定をする

application.ymlの定義として以下のように定義します。

application.yml
spring:
  profiles:
    group:
      local:
        - common
        - local
      staging:
        - common
        - staging

個人的にわかりづらい点として、

  • どのファイルをグループ化するにしても、「application-」という名前の定義ファイルを用意すること。
  • 「application-」と名前をつけたファイルの、「common」「local」「staging」だけを列挙して指定すること。

というのが、見ててわかりづらいなと思いました。
別に以下のように記述したっていいじゃないかと。

spring:
  profiles:
    group:
      local:
        - application-common
        - application-local
      staging:
        - application-common
        - application-staging

とりあえず、上記設定をした状態で、私のローカル開発環境の場合は、Eclipseの実行の構成から、
プログラムの引数--spring.profiles.active=localと設定して実行することで、環境ごとの定義情報をロードしてSpringBootを起動することができました。

0
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2