@NotNull @NotEmpty @NotBlank
javax.validation.constraints package에 포함된 기능으로 api에서 값을 입력받을 때 validation 체크를 위해 사용되는 어노테이션입니다. 많이 사용하게 되는 어노테이션으로 한 번만 차이를 확실히 알고 나면 용도에 맞게 잘 사용할 수 있습니다.
@NotNull
먼저 NotNull 입니다.
The annotated element must not be null. Accepts any type.
NotNull은 말 그대로 null 값만 허용하지 않습니다. 그렇기 때문에 "", " " 가 입력되었을 경우는 허용하게 됩니다.
@NotEmpty
다음으로 NotEmpty 입니다.
The annotatd element must not be null nor empty.
Supported types are :
- CharSequence (length of character sequence is evaluated)
- Collection (collection size is evaluated)
- Map (map size is evaluated)
- Array (array length is evaluated)
NotEmpty는 null과 추가로 "" 입력도 허용하지 않습니다. 다만 " " 의 입력은 허용됩니다.
@NotBlank
마지막으로 가장 강력한 NotBlank 입니다.
The annotated element must not be null and must contain at least one non-whitespace character. Accepts CharSequence.
NotBlank는 세 가지 어노테이션 중 가장 강도가 강한 것으로 null, "", " " 모두 허용하지 않습니다.
* whitespace = 공백 형태로 된 문자
String text = null;
@NotNull = false
@NotEmpty = false
@NotBlank = false
String text = "";
@NotNull = true
@NotEmpty = false
@NotBlank = false
String text = " "; // whitespace
@NotNull = true
@NotEmpty = true
@NotBlank = false
참고자료
https://javaee.github.io/javaee-spec/javadocs/javax/validation/constraints/package-summary.html
'Programming > Spring Boot' 카테고리의 다른 글
JPA @CreatedDate @LastModifiedDate 생성 시간, 수정 시간이 저장되는 원리 (4) | 2021.11.06 |
---|---|
스프링부트 REST API Excel download 방법 (2) | 2021.10.22 |
RestTemplate 4xx, 5xx Code 처리하는 방법 (HttpClientException) (0) | 2021.10.04 |
JWT + Redis Logout 로그아웃 구현하기 (13) | 2021.09.25 |
security + jwt + redis 로그인 기능 구현 (최종) (17) | 2021.09.23 |