Spring Bootで設定ファイル(yaml)を使う方法

spring

今回はSpring Bootでyaml設定ファイルを読み込んでオブジェクトにセットする方法を紹介していきます。

[スポンサーリンク]

YAMLを用意する。

まずはYAML設定ファイルを用意しましょう。
ファイル名はapplication.ymlとします。
ファイルの設置場所は、main/resources直下にしましょう。

ファイルの内容としては、ダミーの顧客情報を用意しておきましょう。
groupはMap形式で持たせるように、階層を少し意地悪な感じにしてみました。

client:
  name: suzuki
  id: 100
  group:
    group1: AAA
    group2: BBB

YAMLの値をセットするクラス

上記のyamlファイルの値をセットするクラスです。getter, setterは必須です。

@Component
@ConfigurationProperties(prefix = "client")
public class Client {

    private String name;
    private int id;
    private Map<String, String> group;
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public Map<String, String> getGroup() {
        return group;
    }
    public void setGroup(Map<String, String> group) {
        this.group = group;
    }
}

上記クラスの使い方

通常の@Autowiredと同じような使い方さえすれば、yamlの値がClientクラスにセットされています。
特別何かをしなければいけないというようなことはありません。たったこれだけでOKです。

@Autowired
private Client client;

@RequestMapping("/top")
public String top() {
    System.out.println(client.getName());
    return "ok";
}

springとjavaのバージョン

Spring Bootのバージョンは、1.2.3を使っています。
javaは、version 8です。

さいごに

設定ファイルの値をオブジェクトにセットする方法ってなんだか年々簡単になっていっているような気がします。これSpring Bootのyamlを扱う方法ってこれ以上簡単になるのかが不安になるくらい現状の方法が簡単で驚きました。

それでは!