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クラスには特別なアノテーションは必要ありません。