application.propertiesで定義した定数を使用する

application.propertiesで定義した定数を使用する方法をご紹介します。

Spring Boot Version 2.7.0で動作確認しています。

mainメソッドのクラスに @ConfigurationPropertiesScan を追加します。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;

@SpringBootApplication
@ConfigurationPropertiesScan
public class RestSampleApplication {

  public static void main(String[] args) {
    SpringApplication.run(RestSampleApplication.class, args);
  }
}

application.properties に定数を定義

test.csv.dir=C:\\Users\\

クラスにマッピング

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.ConstructorBinding;
import lombok.Data;

@ConstructorBinding
@ConfigurationProperties(prefix="test.csv")
@Data
public class SampleMappingClass{

  private String dir;

}

ここで要注意なのは @Data です。@Getter ではコンパイルエラーになりました。内部でSetterなどを使用していると思われます。

上記でマッピングしたクラス(SampleMappingClass)をControllerクラスなどでAutowiredして使用します。Controllerクラスには特別なアノテーションは必要ありません。