Spring Boot 2.2 버전에서부터는 Immutable으로 Properties 설정을 할 수 있습니다. 커스텀 하게 설정한 값들은 Properties 객체로 관리하는 것이 좋습니다. 해당 내용은 Properties 설정값 가져오기를 참조하시면 됩니다. 기존 Properties의 단점은 Mutable이라는 점입니다. 아래 예제 코드에서 설명드리겠습니다.
@ConstructorBinding @ConfigurationProperties(prefix = "user") @Validated dataclassUserProperties( @field:Email val email: String,
@field:NotEmpty val nickname: String,
@field:Min(10) val age: Int,
@field:NotNull val auth: Boolean,
@field:Min(10) val amount: Double,
@DateTimeFormat(pattern = "yyyy-MM-dd") @field:NotNull val date: LocalDate )
사용법은 간단합니다. @ConstructorBinding을 추가하고 data class으로 넘겨받을 값을 생성자로 지정합니다. 위처럼 작성하면 객체는 Immutable 상태가 됩니다. 스프링 부트 2.2.1 버전부터는 @ConfigurationProperties scanning 방식이 disabled 되면서 @EnableConfigurationProperties을 따로 지정해야 합니다. 자세한 내용은 여기를 참고하세요.