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

🏈 参考リンク

📚 おすすめの書籍