こんにちは、さるまりんです。
Spring
の@Value
アノテーションでDate
型の値を設定する方法です。
String
やint
、boolean
ならば
@Value("${my.string.value}")
String myString;
@Value("${my.integer.value}")
int myInteger;
@Value("${my.boolean.value}")
boolean myBoolean;
こんな感じでプロパティファイルから値を設定できます。
これをDate
(java.util.Date
)でやりたいです。
実現するにはSpring Expression Language (SpEL式)を使います。
変数宣言は次のようになります。
@Value("#{new java.text.SimpleDateFormat(\"${mydate.format}\").parse(\"${mydate.value}\")}")
Date myDate;
mydate.value
で設定された文字列をmydate.format
で設定された書式でSimpleDateFormat
を使ってDate
型に変換し変数myDate
にています。
以下のプロパティファイルを読み込んで、
application.properties
# 日付のフォーマット
mydate.format=yyyyMMdd
# 日付の値 (文字列)
mydate.value=20210308
値を
System.out.println("my date is " + myDate);
で出力すると↓のようになります。
my date is Mon Mar 08 00:00:00 JST 2021
SpEL式、便利ですね〜。
いろんなこと出来そうなので色々トライしてみたいと思います。
読んでくださってありがとうございました。
それではまた。