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