Spring5 プロパティファイルから値を読み込む(@value)

Spring5のプロパティファイルから値を読み込むサンプルです。
確認環境(Spring 5.3.7、Java8、STS 4)

目次 Spring5 プロパティファイルから値を読み込む概要
  プロパティファイル(testFile.properties)
  1.起動するクラス(MainController.java)
  2.設定ファイル(applicationContext.xml)

Spring5 プロパティファイルから値を読み込む概要

testFile.propertiesを読み込み1.コンソールに文字列を表示し、2.applicationContext.xmlに値を渡します。

githubにコードがあります。
https://github.com/ut23405/spring5/tree/master/spring5-mvc-properties

プロパティファイル(testFile.properties)

値を読み込むプロパティファイルです。

#testFile
syain.name1=suzuki
file.suffix1=.html

 

1.起動するクラス(MainController.java)

package com.example.test1;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

/**
 * 
 * http://localhost:8881/spring5-mvc-properties/abc
 *
 */
@Controller
public class MainController {

	@Value("${syain.name1}")
	private String testName1;
	
	@GetMapping("/abc")
	public String hello(Model model) {
		System.out.println(testName1); // suzuki
		model.addAttribute("moji", "hello world!");
		return "/test1/index";
	}
}

16行目は、@Valueアノテーションでプロパティファイルから値を取得し17行目の変数に値をセットします。
21行目は、取得した値をコンソールに表示します。

2.設定ファイル(applicationContext.xml)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context 
        https://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        https://www.springframework.org/schema/mvc/spring-mvc.xsd">

	<context:component-scan
		base-package="com.example.test1" />

	<context:property-placeholder location="classpath*:config/*.properties"/>
	
	<mvc:view-resolvers>
		<mvc:bean-name />
		<bean class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
			<property name="templateEngine" ref="templateEngine" />
			<property name="characterEncoding" value="UTF-8" />
			<property name="forceContentType" value="true" />
			<property name="contentType" value="text/html;charset=UTF-8" />
		</bean>
	</mvc:view-resolvers>

	<bean id="templateResolver"
		class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
		<property name="prefix" value="/WEB-INF/testView/" />
		<!--  <property name="suffix" value=".html" />-->
		<property name="suffix" value="${file.suffix1}" />
		<property name="templateMode" value="HTML" />
		<property name="characterEncoding" value="UTF-8" />
	</bean>

	<bean id="templateEngine"
		class="org.thymeleaf.spring5.SpringTemplateEngine">
		<property name="templateResolver" ref="templateResolver" />
		<property name="enableSpringELCompiler" value="true" />
	</bean>
</beans>

34行目は、testFile.propertiesから値を取得します。
一致したファイルがない場合は、java.io.FileNotFoundExceptionが発生します。

関連の記事

Spring5 プロパティファイル読み込み文字列に値をセット

△上に戻る