Spring 입문 3-3 (Bean Validation)

SJ.CHO·2024년 10월 10일

Bean Validation

  • 데이터의 대한 유효성검사를 어노테이션을 통해 쉽게 해결이 가능.

  • build.gradle
implementation 'org.springframework.boot:spring-boot-starter-validation'
  • ProductRequestDto
package com.sparta.springauth.dto;

import jakarta.validation.constraints.*;
import lombok.Getter;

@Getter
public class ProductRequestDto {
    @NotBlank
    private String name;
    @Email
    private String email;
    @Positive(message = "양수만 가능합니다.")
    private int price;
    @Negative(message = "음수만 가능합니다.")
    private int discount;
    @Size(min=2, max=10)
    private String link;
    @Max(10)
    private int max;
    @Min(2)
    private int min;
}

BindingResult

  • 예외가 발생하면 BindingResult 객체에 오류에 대한 정보가 담김
  • BindingResult 객체를 파라미터로 통해 받아와서 오류예외처리 가능.
@PostMapping("/user/signup")
public String signup(@Valid SignupRequestDto requestDto, BindingResult bindingResult) {
    // Validation 예외처리
    List<FieldError> fieldErrors = bindingResult.getFieldErrors();
    if(fieldErrors.size() > 0) {
        for (FieldError fieldError : bindingResult.getFieldErrors()) {
            log.error(fieldError.getField() + " 필드 : " + fieldError.getDefaultMessage());
        }
        return "redirect:/api/user/signup";
    }

    userService.signup(requestDto);

    return "redirect:/api/user/login-page";
}
  • bindingResult.getFieldErrors() : 발생한 오류에 대한 정보를 List로 받아옴.
profile
70살까지 개발하고싶은 개발자

0개의 댓글