Spring bean validation 에서 햇갈리는 3가지(@NotNull, @NotEmpty, @NotBlank) 정리하기

동철·2023년 8월 18일
0

개인적으로 Controller 에서 @Valid를 설정할때 마다 햇갈리는 3가지 validation이 있는데, 바로 @NotNull, @NotEmpty, @NotBlank 이다.
오래 기억에 남기 위해 나만의 언어로 정리해보려고 한다.

우선 validation을 사용하려면 spring 프로젝트에서 build.gradle 파일의 dependencies 를 추가해줘야 한다.

implementation 'org.springframework.boot:spring-boot-starter-validation'

예시는 Controller에서 책(Book)을 추가하기 위해 Request Body에 책 이름을 받는 클래스를 만들어 주도록 하겠다.

public class BookCreateRequest {

//	  어떤걸 써야할까?
//    @NotNull
//    @NotEmpty
//    @NotBlank
    private String title;
}

@NotNull

null을 허용하지 않는 validation.
단, 빈칸("", " ")을 허용 한다.

@NotEmpty

여기서는 null과 비어있는 문자열("")을 허용하지 않는 validation.
단, 공백(" ")을 허용한다.

@NotBlank

null과 빈칸("", " ") 모두를 허용하지 않는 validation.


3가지가 이해됐다면, 요구사항에 맞게 validation을 고르자.

public class BookCreateRequest {

	@NotBlank // null과 빈칸("", " ") 모두 허용하지 않기에, @NotBlank를 사용한다.
    private String title;
}
profile
세상에 기여하는 사람이 되고 싶습니다.

0개의 댓글