【Spring MVC】プロパティファイルに定義した値を取得する方法

概要

プロパティファイルに定義した値をJava側で参照する方法についてまとめた。

 

バージョン

今回使用しているライブラリのバージョンは以下となる。

spring-webmvc: 5.3.32

 

プロパティ用意

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>

 

<value>classpath:hoge.properties</value>

用意したプロパティファイルを指定する。

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";
    }
}

 

@Value(“${hoge.value}”)
private String hogeVal;

上記のように「@Value」 + 「${…}プレースホルダ」を定義し、プレースホルダ内にプロパティで定義したキー値を指定することで取得可能。

 

コンソール


プロパティ値: test

 

 

まとめ

 

☑ プロパティファイルを参照するには、PropertySourcesPlaceholderConfigurerをBean定義する

☑ Web層 or ルート層のどちらで使うかに応じて、対象のコンテキストに定義する

☑ 「@Value + ${…}プレースホルダ」でプロパティファイルの値をフィールドに注入する

スポンサーリンク