Spring

Validation Custom 하기

whyWhale 2023. 2. 24.

What

  • Validation이란 데이터값이 유효한지 판단하는 자바 빈 객첵이다.
  • HTTP 요청 파리미터에 애노테이션으로 간단하게 유효성을 검증 할 수 있다.

Why

  • 값들의 유효성을 검증하기 위해 사용한다.
  • 안그러면 어떤 데이터가 해당 컴포넌트로 전달될 때 믿고 사용할 수 없을 것이다.

How

  1. 의존성 추가(gradle)
implementation("org.springframework.boot:spring-boot-starter-validation")
  1. 애노테이션 만들기
@Target(ElementType.FIELD) 
@Retention(RetentionPolicy.RUNTIME) 
@Constraint(validatedBy = PhoneValidator.class) 
public @interface Phone {
  String message() default "휴대폰 번호";
  Class[] groups() default {};
  Class[] payload() default {};
}
  1. 구현체 만들기
public class PhoneValidator implements ConstraintValidator<Tel, String> {

  @Override
  public boolean isValid(String value, ConstraintValidatorContext context) {
    if (value == null) {
      return false;
    }

    return value.matches("(01[016789])(\\\\d{3,4})(\\\\d{4})");
  }
}
  1. 코드에 애노테이션 사용하기
@Getter
public class RequestDto {

	// ...

  @Phone
  private String phoneNumber;
}
  1. 컨트롤러에 @Valid 추가하기
@RestController
public class ValidController {
  @PostMapping("/valid")
  public void valid(@RequestBody @Valid RequestDto dto){
	    System.out.println("벨리데이터 완성!");
  }
}

'Spring' 카테고리의 다른 글

트랜잭션 전파속성  (0) 2023.02.15
@Transactional 동작원리  (0) 2022.12.23

댓글