Spring Bootで外部設定ファイル(yaml)の値を取得する方法 ホームページ制作 | 墨田区

Spring Bootで外部設定ファイル(yaml)の値を取得する方法

LINEで送る
Pocket

Spring Bootで外部設定ファイル(yaml)の値を取得する方法です。
Spring Bootで外部設定ファイル(yaml)の値を取得する方法

以前、「Spring Bootで設定ファイル(yaml)を読み込む方法」で紹介した @ConfigurationProperties は、@ConficurationProperties が付けられた Bean が SpringDI に登録されると Setter を通じてプロパティの値が設定されるというものでした。

これ以外にも SpringFramework に備わった機能で application.properties や application.yml に設定した値を取得することができます。

今回は @ConfigurationProperties以外の方法を使い、Spring Bootで外部設定ファイル(yaml)の値を取得する方法 を紹介します。




【PR】マジか?!「アレ」してるLINEスタンプっていったい・・・


@Valueを使う

@Value(${設定名:デフォルト値})の形式で指定すれば値が取れます。

仮に application.yml にこのような設定があったとします。

hello: world

この場合、下記ように記述すれば値が取得できます。
  @Value("${hello}")
  public String message;

  public void helloworld() {
    System.out.println(message); // world が出力される
  }

ふむ、簡単ですね^^


Environmentインタフェースを使う

次に Environment インタフェースのメソッドを利用して取得する方法です。

仮に application.yml にこのような設定があったとします。

spring:
  profiles:
    active: dev
  thymeleaf:
    mode: HTML
hello: world

「spring.profiles.active」の値を取得するには下記のように記述します。
  @Autowired
  private Environment environment;

  public void mode() {
    System.out.println(environment.getProperty("spring.profiles.active"));  // dev が出力される
  }

ふむふむ、簡単ですね^^


まとめ

個人的には @ConfigurationProperties を使って Bean に自動インジェクションさせる方法がいいと思います。getter/setter の記述は Lombok を利用することで省略できるし、なんといっても Spring Boot が提供している仕組みですからね、Spring Boot を使うんだったらこれが一番なんだろうと勝手に思っています^^;

とまあ、やり方は色々ありますが、外部設定値を取得する方法を覚えて実務に役立てましょうね。


おつかれさまでした。

LINEで送る
Pocket

この記事がお役に立ちましたら シェア をお願いいたします。

コメントを残す

コメント(必須)

お名前 (必須)
メールアドレス
(アドレスは公開されません)

Trackback URL