概要
プロパティファイルに定義した値をJava側で参照する方法についてまとめた。
バージョン
今回使用しているライブラリのバージョンは以下となる。
プロパティ用意
Java側で取得したい値をプロパティファイルに定義して、クラスパス配下に格納する。
/src/main/resources/hoge.properties
# プロパティ定義値
hoge.value=test
Bean定義
プロパティを参照する仕組みを用意するため、「org.springframework.context.support.PropertySourcesPlaceholderConfigurer」をBean定義する。
今回はWeb層にてプロパティ値を取得するため、WEBアプリケーションコンテキストに定義する。
※Web層ならWEBアプリケーションコンテキストに、サービス層以降ならルートアプリケーションコンテキストに定義する
概要 Spring MVCフレームワークを使用して開発を進める際、Mavenプロジェクトの基本的なセットアップ方法についてまとめた。 前提 プロジェクトの具体的な作成方法については以下に記載。 [siteca[…]
springMVCContext.xml
<!-- プロパティファイル参照 -->
<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:hoge.properties</value>
</list>
</property>
</bean>
用意したプロパティファイルを指定する。
resourcesフォルダ配下に格納している場合、上記のように記載すればOK。
尚、<list>タグ配下に複数のファイルを指定可能。
プロパティ参照
今回はWeb層のコントローラーにて、定義したプロパティの値を参照する。
HogeController.java
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HogeController {
/** プロパティ設定値 */
@Value("${hoge.value}")
private String hogeVal;
/** ハンドラメソッド */
@GetMapping(value = "foo")
public String hoge() {
// プロパティから取得した値
System.out.println("プロパティ値: " + hogeVal);
return "bar";
}
}
private String hogeVal;
上記のように「@Value」 + 「${…}プレースホルダ」を定義し、プレースホルダ内にプロパティで定義したキー値を指定することで取得可能。
コンソール
プロパティ値: test
まとめ
☑ プロパティファイルを参照するには、PropertySourcesPlaceholderConfigurerをBean定義する
☑ Web層 or ルート層のどちらで使うかに応じて、対象のコンテキストに定義する
☑ 「@Value + ${…}プレースホルダ」でプロパティファイルの値をフィールドに注入する