본문 바로가기

Programming/Spring

[Spring] validation (유효성 검사)

728x90

프로젝트 도중 유효성 검사를 위해 @Valid, @NotBlank, @Email 등의 어노테이션을 써야했다.

하지만 스프링부트 2.3(?)버전부터는 javax.validation이 spring-boot-starter-web에 포함되어 있지 않아서 build.gradle에 따로 의존성을 추가해줘야 했다.

implementation 'org.springframework.boot:spring-boot-starter-validation'

 

validation 관련 어노테이션은 종종 사용하기 때문에 간단하게 정리해봤다

 

  • @NotNull  : 속성 값이 null이 아닌지 확인
  • @AssertTrue  : 속성 값이 ture인지 확인
  • @Size : 속성 값의 크기가 최소 및 최대값 사이인지 확인 (String, Collection, Map, Array에 적용 가능)
  • @Min  : 속성 값이 value보다 작은지 확인
  • @Max  : 속성 값이 value보다 큰지 확인 
  • @Email : 속성 값이 이메일 주소인지 확인
  • @NotEmpty : 속성 값이 null이거나 비어 있지 않은지 확인 (String, Collection, Map, Array에 적용 가능)
  • @NotBlank : 속성 값이 null이거나 공백이 아닌지 확인 (텍스트 값에만 적용 가능)
  • @Positive : 속성 값이 양수인지 확인
  • @PositiveOrZero : 속성 값이 0을 포함한 양수인지 확인
  • @Negative : 속성 값이 음수인지 확인
  • @NegativeOrZero : 속성 값이 0을 포함한 음수인지 확인
  • @Past : 날짜가 과거인지 확인
  • @PastOrPresent : 날짜가 현재를 포함하여 과거인지 확인
  • @Future : 날짜가 미래인지 확인
  • @FutureOrPresent : 날짜가 현재를 포함하여 미래인지 확인

* 각 어노테이션에는 공통적으로 message 속성 적용 가능 (유효성 검사에 실패할 때 렌더링 되는 메시지)

 (ex. @NotNull (message = "해당 값이 Null입니다.")

 

 

(참고 : www.baeldung.com/javax-validation)