Spring Bootの定義ファイル
Spring Bootでは、プロパティ値を設定する定義ファイルとして、application.ymlやapplication.propertiesがありますね。
設定する内容としては、以下にあります通り多岐に渡ります。
https://spring.pleiades.io/spring-boot/docs/current/reference/html/application-properties.html
DBに接続するために必須の設定だったり、ログの出力レベルを変更するために使用されたりなど、使用する場面は多いことでしょう。
主に環境変数の設定に使用されたりしますね。
ちなみにここで設定した値をJavaのソース上でも利用できます。
Javaのソースで値を取得する方法
方法はいたって簡単。
@Valueというアノテーションを使用すれば良いのです。
例として以下のようにapplication.ymlにsamplePropertyというプロパティ値があるとします。
application.yml
sampleProperty: test
これをJavaから呼び出したい場合、以下のように@Valueアノテーションを使用して記述することでインスタンス変数として使用することができるのです。
@Controller public class SampleController { @Value("${sampleProperty}") private String sampleProperty; }
ついでにapplication.ymlに階層でプロパティ値を設定している場合、
application.yml
sampleProperty: property1: test
これをJavaから呼び出したい場合は以下のようにすれば呼び出せます。
@Controller public class SampleController { @Value("${sampleProperty.property1}") private String sampleProperty; }
どんな時に使用する?
プログラムをするにあたり、定義ファイルは使い所が多いですよね。
DBの接続先やログの出力レベルは当然のこととして、
外部アクセスをする際のURLやキー等を配置しておくことが多いのではないでしょうか。
汎用的に使用したい設定値はまとめて記述しておきたいと思うものなので、上記のようにソースからも使用してみるのはいかがでしょうか。