728x90
목차
- 개요
- @NotNull 이란?
- @NotEmpty 란?
- @NotBlank 란?
- 결론
1. 개요
프로젝트를 진행하면서 validation체크를 하기 위한 비슷한 (@NotNull, @NotBlank, @NotEmpty) 3가지 어노테이션을 마주하게 되었다.
스프링 부트 3.0부터는 기존 javax.validation.constraints
에서 jakarta.validation.constraints
로 패키지명이 변경 되었으나 동일한 기능을 제공하고 비슷한 어노테이션에 차이를 알아보려고 한다.
2. @NotNull 이란?
The annotated element must not be null. Accepts any type.
- @NotNull은 Null 값만 허용하지 않는다. 즉 Null이 아닌 “”, “ “ 인 경우에는 허용을 한다.
3. @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과 “” 도 허용하지 않는다. 하지만 “ “ 의 입력은 허용된다.
4. @NotBlank란?
The annotated element must not be null and must contain at least one non-whitespace character. Accepts CharSequence.
- @NotBlank는 null, “”, “ “ 모두 허용하지 않는다.
5. 결론
- 내용을 간단하게 표로 정리하면 아래와 같다. 주어진 요구상황에 맞게 validation을 사용하자.
null | “” | “ “ | |
@NutNull | false | true | true |
@NotEmpty | false | false | true |
@NotBlank | false | false | false |
반응형
'Spring' 카테고리의 다른 글
Validation 책임과 범위는 어떻게 가져가야할까? (1) | 2024.02.06 |
---|---|
테스트코드가 프로덕션코드에 영향을 주어서는 안된다? (0) | 2024.02.03 |
상태검증 vs 행위검증 (0) | 2024.01.29 |
logback vs log4j2 (0) | 2024.01.08 |
__**JDK Dynamic Proxy vs CGLIB Proxy**__ (0) | 2023.12.29 |