반응형
- @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' 카테고리의 다른 글
Spring Boot + Prometheus + Grafana를 이용한 모니터링(1/3) (2) | 2021.12.14 |
---|---|
Spring Boot + FCM 웹 푸시 사용하기 (0) | 2021.12.02 |
Spring Security + OAuth2.0 소셜 인증 예제(Google, Naver, Kakao) (6) | 2021.10.21 |
Spring Cloud Config 소개 & 예제 (0) | 2021.10.18 |
Spring Boot + log4j2 (0) | 2021.10.07 |