Spring Bootの@ConfigurationPropertiesアノテーションの使い方

Spring Bootの@ConfigurationPropertiesアノテーションの使い方

@ConfigurationPropertiesでapplication.ymlに記述した値を読み込みます。

application.yml

system:
user: takahashi
pass: takahashi20190101

view raw
application.yml
hosted with ❤ by GitHub

このようなapplication.ymlがあるとして、このファイルに対応するコンポーネントクラスを用意します。SampleComponentクラスとします。

@Dataを@Valueにすると、String型のプロパティの場合はエラーになります。

private final Map<String, String> user;というようにMap型にする場合、@Valueアノテーション(lombok.Value)でSetterを削除することが可能です。

メインのクラスでSampleComponentをDIしています。

application.propertiesに定義した値が出力されます。

@Value(org.springframework.beans.factory.annotation.Value)で値を設定する

@Valueアノテーションで設定ファイル(application.yml)の値を直接設定することが出来ます。

メンバ変数に対して@Valueアノテーションを付加します。

${spring.data.str}というプレースホルダを指定することで、application.ymlの設定値を直接設定することが可能になります。

spring:
data:
str: hogehoge #この値が直接取得できる

view raw
application.yml
hosted with ❤ by GitHub

@Valueを使って直接取得することができるのですが、コントローラやサービスクラスで@Valueアノテーションを使うより、@Component、@ConfigurationPropertiesアノテーションを使用して、POJOクラスを作成してymlファイルの値を取得して、そのクラスをBean登録したほうが良いです。

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA