Spring Boot

【Spring Boot】プロパティファイルでメッセージを管理する方法

2019年5月12日

Spring Bootでメッセージをプロパティファイルで管理する方法

Javaの人気フレームワークである「Spring Boot」を使用して、プロパティファイルで値(メッセージ)を管理する方法を紹介します。

1. プロパティファイルの作成

src.main.resources配下にmessages.propertiesファイルを作成します。

※Springのデフォルトがsrc.main.resources配下です。

[messages.properties]

hello=Hello World!!

スポンサーリンク

2. プロパティファイルの読み込み

プロパティファイルの読み込みは「MessageSource」を利用します。

[HelloWorldController]

package com.example.demo.controller;

import java.util.Locale;
import org.springframework.context.MessageSource;

/**
* HelloWorld Controller
*/
@Controller
public class HelloWorldController {

  /**
  * メッセージ管理
  */
  @Autowired
  private MessageSource messageSource;

  /**
  * HelloWorld表示
  * @param model Model
  * @return HelloWorld表示画面
  */
  @RequestMapping(value = "/", method = RequestMethod.GET)
  public String helloWorld(Model model) {
    model.addAttribute("message",messageSource.getMessage("hello", new String[] {}, Locale.getDefault()));
    return "index";
  }
}

3. 動作確認

HTMLを作成しhttp://localhost:8080/にアクセスすると、プロパティファイルから読み込んだ値が表示されます。

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hello</title>
<meta charset="utf-8" />
</head>
<body>

<h1>第一章 Spring Boot+Thymeleaf で”Hello World”を作成する</h1>

<h2><span th:text="${message}"></span></h2>

</body>
</html>
Hello World

プロパティファイルに動的パラメータを設定する方法

プロパティファイルに動的パラメータが入る場所の指定をします。指定方法は{数値}の形式で指定します。※数値は0から順番に設定

[messages.properties]

hello.param={0}Hello World{1}!!

プロパティファイルの読み込み処理「messageSource.getMessag」の第二引数の配列に動的パラメータの値を設定します。

[HelloWorldController]

messageSource.getMessage("hello.param", new String[] {"動的パラメータ1","動的パラメータ2"}, Locale.getDefault()));

先ほどと同じようにhttp://localhost:8080/にアクセスすると、プロパティファイルから読み込んだ値が表示されます。

プロパティファイルを動的設定

helpful