다시 웹, 백엔드로/스프링

@ConfigurationProperties 검증

EnoughTT 2023. 10. 30. 18:23

@ConfigurationProperties 검증

 

최대 커넥션 숫자는 최소 1 최대 999라는 범위를 가져야 한다면 검증을 어떻게 할 수 있을까?

자바에는 자바 빈 검증기 (java bean validation) 이라는 표준 검증기가 제공됨

 

자바 빈 검증기를 사용하려면 spring-boot-starter-validation 이 필요함

build.gradle
MyDataSourcePropertiesV3
MyDataSourcePropertiesV3

 

  • @NotEmpty 어노테이션: 항상 값이 있어야 함
  • @Min(1) @Max(999) 어노테이션: 최소 1, 최대 999의 값을 허용
  • @DurationMin(seconds = 1) @DurationMin(seconds = 60) 어노테이션: 최소 1, 최대 60초를 허용 

 

MyDataSourceConfigV3 생성 및  ExternalReadApplication.java 수정

MyDataSourceConfigV3
ExternalReadApplication.java

 

maxConnection=0 으로 설정할 경우

정상 실행

 

ConfigurationProperties 덕분에 타입 안전하고, 매우 편리하게 외부 설정을 사용할 수 있음 또한, 검증도 할 수 있음

가장 좋은 예외는 컴파일 예외, 애플리케이션 로딩 시점에 발생하는 예외임

 

  • 장점
    • 외부 설정을 객체로 편리하게 변환해서 사용할 수 있음
    • 객체로 편리하게 표현 할 수 있음
    • 외부 설정을 타입 안전하게 사용할 수 있음
    • 검증할 수 있음

 

 

 

 

 

 

 

 

 

 

feat. 스프링부트 - 핵심 원리와 활용 (김영한)