728x90
새롭게 프로젝트를 진행하면서 유효성 검사를 위해 사용했던 애너테이션들의 정확한 역할 구분이 필요했다. 자바에서 @NotNull, @NotEmpty, @NotBlank는 모두 유효성 검증(validation)을 위해 사용되는 애너테이션이다. 이번에 각 애너테이션의 차이를 확실히 알고 용도에 맞게 사용해보자
@NotNull
@NotNull은 매개변수, 필드 또는 메서드 반환 값이 Null인지 체크하는 데 사용된다. NullPointerException이 발생하지 않도록 하는 데 사용된다. null을 제외한 “”, “ “과 같은 빈문자열은 허용한다.
@NotNull
String test1 = null; // false
@NotNull
String test2 = ""; // true
@NotNull
String test3 = " "; // true
@NotEmpty
@NotEmpty 애너테이션은 문자열, 컬렉션, 맵 또는 배열이 비어 있지 않아야 함을 나타내는 데 사용된다. 객체에 적어도 하나 이상의 요소가 포함되어야 한다. null과 “”를 허용하지 않는다. 객체가 null이면 대신 @NotNull을 트리거한다.
@NotEmpty
String test1 = null; // false
@NotEmpty
String test2 = ""; // false
@NotEmpty
String test3 = " "; // true
@NotBlank
@NotBlank 애너테이션은 문자열이 null이거나 비어 있지 않아야 함을 검증해준다. 빈 문자열이란 “ “과 같이 문자가 아닌 공백만 포함된 문자열을 의미한다. null, “”, “ “ 모두를 허용하지 않는다.
@NotBlank
String test1 = null; // false
@NotBlank
String test2 = ""; // false
@NotBlank
String test3 = " "; // false
참조
https://www.baeldung.com/java-bean-validation-not-null-empty-blank
728x90
'Java' 카테고리의 다른 글
Java - @JasonCreator로 DTO에서 유연하게 Enum Type 받기 (0) | 2023.04.26 |
---|---|
Java - 커스텀 애너테이션으로 유효성 검사하기 (0) | 2023.04.22 |
Java - 제네릭(Generic)과 함께하는 리팩토링 (0) | 2023.04.17 |
Java - AES-128 양방향 암호화하기 (0) | 2023.03.29 |
Java - String 메소드 총정리! (0) | 2022.11.30 |