02.11 Spring Boot Validation 어노테이션(@) 정리
2023. 2. 11. 18:19ㆍ개발일지
@Null / @NotNull
- 값이 null이거나(@Null) Null이 아닐때(@NotNull)를 검증합니다.
(@NotNull로 설정 시 String의 ""(빈값) 값도 통과된다는 것을 주의해야 합니다.)
@Min(value) / @Max(value)
- 숫자(정수)를 입력하는 필드에서 입력 가능한 값의 최솟값(@Min)과 최댓값(@Max)를 설정합니다.
ex : @Min(100), @Max(9999)
@DecimalMin(value) / @DecimalMax(value)
- 이것도 최솟값(@DecimalMin), 최댓값(@DecimalMax)을 설정하지만 정수가 아닌 BigDemical이나 BigInteger 객체 또는 String 값으로 숫자를 설정하는 경우에 사용합니다. @Min, @Max도 String값이나 DecimalInteger을 사용할 수 있어서 별로 다를 것은 없습니다.
ex : @DecimalMin("123"), @DecimalMax("12345")
@Future / @Past
- @Future은 미래, @Past 과거인지 검증합니다.
(Date, Calender 및 해당 서브 클래스 등을 다루는 필드에 사용합니다.)
@AssertFalse / @AssertTrue
- false(@AssertFalse)와 true(@AssertTrue)를 검증합니다.
@Size
- 문자열이 아닌 배열, 컬렉션에 갯수를 검증하며, min 속성으로 최소 요소 수를, max 속성으로 최대 요소 수를 지정합니다.
ex : @Size(min=1, max=10)
@Pattern
- String 값 필드에 정규 표현식을 검증하며, regexp 속성에 정규식을 지정합니다.
ex : @Pattern(regexp = "[a-zA-Z]+");
@NotEmpty
- String 값이 null 또는 ""(빈값)인지 검증합니다
@NotBlank
- String 값이 Null 또는 ""(빈값) 또는 ""(공백)인지 검증하며, 보통 String 값의 검증은 @NotBlank를 사용합니다.
@Length
- String 값의 길이(문자 수)의 범위를 지정하며, min 속성으로 최소 길이, max 속성으로 최대 길이를 지정합니다
ex : @Length(min5, max=10)
@Range
- 최솟값, 최댓값을 지정해서 일정 범위 내에 숫자인지 검증합니다. 한마디로 @Min, @Max를 한번에 사용하는 것이며, min 속성으로 최솟값을, max 속성으로 최댓값을 지정합니다
ex : @Range(min=10, max=100)
- 입력된 String 값이 이메일 주소인지 검증합니다.
@CreditCardNumber
- 입력된 값이 신용 카드 번호 형식과 일치하는지 확인하며, 숫자 및 String 형식의 숫자 값에 사용됩니다.
(참고 : 값의 형식을 검증하는 것이지 실제 카드 번호가 검증되는 것은 아니므로 @Pattern을 사용하는 것을 권장합니다.)
@EAN
- EAN(European Article Number)또는 UCP(Uniform Product Code Council)의 코드 번호를 확인하며, 이 번호들은 바토드 식별 번호 규격입니다. 특히 EAN은 일본 바코드에서 자주 사용됩니다.
message 속성
- 어노테이션에 message 속성에 사용하면 validation 실패 시 경고 문구로 활용할 수 있습니다.
ex : @Email(message = "이메일 형식을 확인해주세요.")
properties 파일에도 한번에 정의가 가능합니다
// javax validation javax.validation.constraints.Min.message = {value} 보다 작은 값으로 입력해주세요.
// hibernamte validation org.hibernate.validator.constraints.Email.message = 이메일 형식을 확인해주세요.
@Validated
- Controller를 @ModelAttribute 모델에 바인딩하는데 사용합니다. 해당 인터페이스는 두 개의 메서드로 구성되어 있습니다.@Validated는 @Valid의 기능을 포함합니다.
(validate(Object, org.springframework.validation.Errors), 매개변수로 전달된 객체 검증하여 반환)
@Valid
- JSR-303 표준 스펙(자바 진영 스펙)으로써 빈 검증기(Bean Validator)를 이용해 객체의 제약 조건을 검증하도록 지시하는 어노테이션입니다.
'개발일지' 카테고리의 다른 글
02.12 DI / IoC / Bean (0) | 2023.02.12 |
---|---|
02.11 TIL (0) | 2023.02.11 |
02.11 @PathVariable (0) | 2023.02.11 |
02.11 ResponseEntity (0) | 2023.02.11 |
02.10 JWT 저장 (쿠키, Local storage, Session storage) (0) | 2023.02.10 |