개인적으로 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;
}
null을 허용하지 않는 validation.
단, 빈칸("", " ")을 허용 한다.
여기서는 null과 비어있는 문자열("")을 허용하지 않는 validation.
단, 공백(" ")을 허용한다.
null과 빈칸("", " ") 모두를 허용하지 않는 validation.
3가지가 이해됐다면, 요구사항에 맞게 validation을 고르자.
public class BookCreateRequest {
@NotBlank // null과 빈칸("", " ") 모두 허용하지 않기에, @NotBlank를 사용한다.
private String title;
}