본문 바로가기
Spring

@NotNull @NotBlank @NotEmpty를 뭐가 다를까?

by Jammini 2024. 2. 1.
728x90

목차

  1. 개요
  1. @NotNull 이란?
  1. @NotEmpty 란?
  1. @NotBlank 란?
  1. 결론

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 :

  1. CharSequence (length of character sequence is evaluated)
  1. Collection (collection size is evaluated)
  1. Map (map size is evaluated)
  1. 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“”“ “
@NutNullfalsetruetrue
@NotEmptyfalsefalsetrue
@NotBlankfalsefalsefalse

반응형