본문 바로가기
스프링

@NotNull, @NotEmpty, @NotBlank

by 진믈리 2024. 7. 11.

프로젝트를 진행하면 객체의 제약조건을 검증해야 하는 일이 많이 있다. 객체의 필드가 필수적으로 값을 가지게 하고 싶을 때 우리는 NotNull 을 많이 사용한다. 그렇다면  @NotEmpty, @NotBlank 는 무엇일까?

 

1.  @NotNull

@NotNull 은 말 그대로 Null을 허용하지 않겠다는 것이다. 

@NotNull
private String name;

"" 이렇게 빈 문자열도 가능하고 " " 공백으로 이루어진 문자열도 가능하다.

name = null 불가

name = "" 가능

name = "   " 가능

 

2. @NotEmpty

@NotEmpty
private String name;

@NotEmpty 는 @NotNull 에서 "" 빈 문자열 제약 조건이 추가된다. 따라서 " " 빈 공백 문자열은 허용된다.

ex)

name = null 불가

name = "" 불가

name = "     " 가능

 

3. @NotBlank

@NotBlank 는 공백, 빈 문자열, Null 모두 허용하지 않는다.

@NotBlank
private String name;

 

name = null 불가

name = "" 불가

name = "    " 불가

 

따라서 필수적으로 값을 필요로 하는 name 필드라면 @NotBlank가 좋을 것 같다.