Spring Bootで外部設定ファイル(yaml)の値を取得する方法
Spring Bootで外部設定ファイル(yaml)の値を取得する方法です。
以前、「Spring Bootで設定ファイル(yaml)を読み込む方法」で紹介した @ConfigurationProperties は、@ConficurationProperties が付けられた Bean が SpringDI に登録されると Setter を通じてプロパティの値が設定されるというものでした。
これ以外にも SpringFramework に備わった機能で application.properties や application.yml に設定した値を取得することができます。
今回は @ConfigurationProperties以外の方法を使い、Spring Bootで外部設定ファイル(yaml)の値を取得する方法 を紹介します。
@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 が出力される
}
ふむふむ、簡単ですね^^
まとめ
Spring Bootで外部設定ファイル(yaml)の値を取得する方法を紹介しました。
個人的には @ConfigurationProperties を使って Bean に自動インジェクションさせる方法がいいと思います。getter/setter の記述は Lombok を利用することで省略できるし、なんといっても Spring Boot が提供している仕組みですからね、Spring Boot を使うんだったらこれが一番なんだろうと勝手に思っています^^;
とまあ、やり方は色々ありますが、外部設定値を取得する方法を覚えて実務に役立てましょうね。
おつかれさまでした。