Spring Frameworkの設定ファイルと読み込み


JavaのSpring Frameworkでプロパティ(設定値)をファイルに書き込んでおいて、ControllerやServiceなどでインジェクトして使う方法を紹介します。

🎃 プロパティファイルの値をインジェクト

application.propertiesに設定したプロパティ値は@org.springframework.beans.factory.annotation.Valueアノテーションでインジェクトできます。

プロパティファイル

application.propertiesに次の内容を記述します。

article.hoge=fuga

設定値をインジェクトする

さきほど設定したプロパティをインジェクトしてみます。

@Component
public class ArticleService {
@Value("${article.hoge}")
private String hoge;
}

🍮 プロパティをまとめて管理:@ConfigurationProperties

前述の方法では、毎回対象プロパティ名と型を指定する必要があり、何度も使いまわすのは不向きです。@ConfigurationPropertiesでプロパティ値をまとめて定義しておき、それをインジェクトして使うことができます。

Java Bean ArticlePropertiesを作成してDIコンテナに登録します。

@Getter // Lombok
@Component
@ComfigurationProperties(prefix = "article")
public class ArticleProperties {
@NotNull
private String hoge;
}

ArticlePropertiesをインジェクトして各プロパティのGetterで設定値を取得できます。

@Component
public class ArticleService {
@Autowired
private ArticleProperties articleProperties;
}

🚜 参考リンク

📚 おすすめの書籍

🖥 サーバについて

このブログでは「Cloud Garage」さんのDev Assist Program(開発者向けインスタンス無償提供制度)でお借りしたサーバで技術検証しています。 Dev Assist Programは、開発者や開発コミュニティ、スタートアップ企業の方が1GBメモリのインスタンス3台を1年間無料で借りれる心強い制度です!(有償でも1,480円/月と格安)