본문 바로가기

웹 프로그래밍/Spring

[Spring] Spring Boot Validation annotation 정리

728x90
반응형

@RequestBody 옆(오른쪽, 왼쪽 상관 없음)에 @Valid 어노테이션을 쓴 뒤에 해당 DTO의 필드 위에 유효성 검증을 원하는 대상에 부합하는 annotation을 써줍니다.

 

사용법

자세한 사용법은 아래 글을 참고해주세요~

https://yundevnote.tistory.com/64

 

[Spring] Spring Boot에서의 validation check

Validation 올바르지 않은 데이터를 걸러내고 보안을 유지하기 위해 데이터 검증은 여러 계층에 걸쳐서 적용됩니다. Client의 데이터는 조작이 쉬울 뿐더러 모든 데이터가 정상적인 방식으로 들어오

yundevnote.tistory.com

@Getter
@RequiredArgsConstructor
public class UserRequestDto {

    @NotEmpty(message = "이메일은 필수 입력값입니다.")
    @Email
    private String email;

    @NotNull
    private String password;

    ...
}
@PostMapping("/user/add") 
public ResponseEntity<?> addUser(@RequestBody @Valid UserRequestDto userRequestDto) { 
    ... 
}
  • @NotNull: 해당 값이 null이 아닌지 검증합니다
  • @Null: null만 입력 가능합니다
  • @NotEmpty: 해당 값이 null이 아니고, 빈 스트링("") 아닌지 검증합니다(" "은 허용됨)
  • @NotBlank: 해당 값이 null이 아니고, 공백(""과 " " 모두 포함)이 아닌지 검증합니다
  • @AssertTrue: 해당 값이 true인지 검증합니다
  • @AssertFalse: 해당 값이 false인지 검증합니다
  • @Size(min=,max=) : 해당 값이 주어진 값 사이에 해당하는지 검증합니다(String, Collection, Map, Array에도 적용 가능)
  • @Min: 해당 값이 주어진 값보다 작지 않은지 검증합니다
  • @Max: 해당 값이 주어진 값보다 크지 않은지 검증합니다
  • @Pattern: 해당 값이 주어진 패턴과 일치하는지 검증합니다
  • @Range: 범위 안의 값인지 검증합니다
  • @Positive: 해당 값이 양수인지 검증합니다
  • @PositiveOrZero: 양수와 0만 가능합니다
  • @Negative: 음수만 가능합니다
  • @NegativeOrZero: 음수와 0만 가능합니다
  • @Email: 이메일 형식만 가능합니다
  • @Digits(integer=, fraction = ): 대상 수가 지정된 정수와 소수 자리 수 보다 작은지 검증합니다
  • @DecimalMax(value=): 지정된 값(실수) 이하인지 검증합니다
  • @DecimalMin(value=): 지정된 값(실수) 이상인지 검증합니다

[참조]

https://reflectoring.io/bean-validation-with-spring-boot/

728x90
반응형