[Toy Project] Spring Validation - @NotNull, @NotBlank, @NotEmpty, @Pattern

최지나·2023년 11월 1일
3

프로젝트 진행 상황

  • 제품(product)와 카테고리(category) entity에 대한 기본적인 CRUD API를 완성하였다. 그 중, 제품|카테고리를 업데이트하는 API 생성 시, Input에 Validation을 걸기 위해 사용한 annotation들에 대해 기록해보고자 한다 🐧


Spring Validation 관련 어노테이션

  • 데이터 유효성 검사를 수행하고 입력 데이터를 간편하게 검증하는데 사용된다.
  • 입력 데이터의 유효성을 확인할 수 있으며, 검증 실패 시 에러 메시지 생성할 수 있다.

1. @NotNull VS @NotEmpty VS @NotBlank

  • null, "", " " 허용 여부 비교
어노테이션null""" "
@NotNullXOO
@NotEmptyXXO
@NotBlankXXX
@NotBlank(message = "제품 명은 반드시 있어야 합니다")
private String name;

2. @Pattern

문자열 필드가 정규 표현식과 일치하는지 확인하는 어노테이션

    @Pattern(regexp = "^.{2,29}$", message = "카테고리 명은 2자 이상 30자 미만")
    private String categoryName;

사용 예

  • CategoryPatch.java
@Getter
@Setter
public class CategoryPatch {
    @NotBlank
    @Pattern(regexp = "^.{2,29}$", message = "카테고리 명은 2자 이상 30자 미만이어야 합니다.")
    
    private String name;
    private String description;
    private String parentCategoryCode;

}
  • API 요청

1) @NotBlank 어노테이션의 validation에 어긋난 경우

2) @Pattern 어노테이션의 validation에 어긋난 경우

profile
의견 나누는 것을 좋아합니다 ლ(・ヮ・ლ)

0개의 댓글