Spring

Spring Boot Validation 어노테이션 정리

Beekei 2021. 11. 10. 09:24
반응형
  • @Null / @NotNull
    값이 null이거나(@Null) Null이 아닐때(@NotNull)를 검증한다.
    @NotNull로 설정 시 String의 ""(빈값) 값도 통과된다는 것을 주의하자.

  • @Min(value) / @Max(value)
    숫자(정수)를 입력하는 필드에서 입력 가능한 값의 최솟값(@Min)과 최댓값(@Max)을 설정한다.
    예) @Min(100), @Max(99999)

  •  @DecimalMin(value) / @DecimalMax(value)
    이것도 최솟값(@DecimalMin), 최댓값(@DecimalMax)을 설정하지만 정수가 아닌 BigDemical이나 BigInteger 객체 또는 String 값으로 숫자를 설정하는 경우에 사용한다. @Min, @Max도 String 값이나 DecimalInteger을 사용할 수 있어서 별로 다를 것은 없다.
    예) @DecimalMin("123"), @DecimalMax("12345")

  • @Digits
    정수 부분과 소수 부분의 자릿수 제한을 검증한다.
    integer 속성은 정수의 자릿수를, fraction 속성은 소수 이하 자릿수를 지정한다.
    예) @Digits(integer=5, fraction=10) 

  • @Future / @Past
    @Future은 미래, @Past 과거인지 검증한다.
    Date, Calendar 및 해당 서브 클래스 등을 다루는 필드에 사용한다.

  • @AssertFalse / @AssertTrue
    false(@AssertFalse)와 true(@AssertFalse)를 검증한다.

  • @Size
    문자열이 아닌 배열, 컬렉션에 갯수를 검증한다.
    min 속성으로 최소 요소 수를, max 속성으론 최대 요소 수를 지정한다.
    예) @Size(min=1, max=10)
  • @Pattern
    String 값 필드에 정규 표현식을 검증한다.
    regexp 속성에 정규식을 지정한다.

    예) @Pattern(regexp="[a-zA-Z]+");

  • @NotEmpty
    String 값이 null 또는 ""(빈값)인지 검증한다.

  • @NotBlank
    String 값이 null 또는 ""(빈값) 또는 " "(공백)인지 검증한다.
    보통 String 값의 검증은 @NotBlank를 사용한다.

  • @Length
    String 값의 길이(문자 수)의 범위를 지정한다.
    min 속성으로 최소 길이, max 속성으로 최대 길이를 지정한다.
    예) @Length(min=5, max=10)

  • @Range
    최솟값, 최댓값을 지정해서 일정 번위 내에 숫자인지 검증한다. 한마디로 @Min, @Max를 한번에 사용하는 것이다.
    min 속성으로 최솟값을, max 속성으로 최댓값을 지정한다.
    예) @Range(min=10, max=100)

  • @Email
    입력된 String 값이 이메일 주소인지 검증한다.

  • @CreditCardNumber
    입력된 값이 신용 카드 번호 형식과 일치하는지 확인한다. 숫자 및 String 형식의 숫자 값에 사용된다.
    참고로 값의 형식을 검증하는 것이지 실제 카드 번호가 검증되는 것은 아니므로 @Pattern을 사용하는 것을 권장한다.

  • @EAN
    EAN(European Article Number) 또는 UCP(Uniform Product Code Council)의 코드 번호를 확인한다.
    이 번호들은 바토드 식별 번호 규격이다. 특히 EAN은 일본 바코드에서 자주 사용된다.

  • message 속성
    어노테이션에 message 속성을 사용하면 validation 실패 시 경고 문구로 활용할 수 있다.
    예) @Email(message="이메일 형식을 확인해주세요.")

    properties 파일에도 한번에 정의가 가능하다.
    // javax validation
    javax.validation.constraints.Min.message = {value} 보다 작은 값으로 입력해주세요.
    // hibernamte validation
    org.hibernate.validator.constraints.Email.message = 이메일 형식을 확인해주세요.

 

 

Validation 어노테이션을 직접 만드는 방법도 있다.

 

Spring Boot 유효성 검증 어노테이션 만들기

보통 기본적인 유효성 검증은 Validation 어노테이션들로 설정한다. 만약 더 섬세한 유효성 검증이 필요할때는 자신만에 어노테이션을 만들어 설정할 수 있다. 만약 연락처 필드의 유효성 검증(Phon

devbksheen.tistory.com

반응형