What
- Validation이란 데이터값이 유효한지 판단하는 자바 빈 객첵이다.
- HTTP 요청 파리미터에 애노테이션으로 간단하게 유효성을 검증 할 수 있다.
Why
- 값들의 유효성을 검증하기 위해 사용한다.
- 안그러면 어떤 데이터가 해당 컴포넌트로 전달될 때 믿고 사용할 수 없을 것이다.
How
- 의존성 추가(gradle)
implementation("org.springframework.boot:spring-boot-starter-validation")
- 애노테이션 만들기
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = PhoneValidator.class)
public @interface Phone {
String message() default "휴대폰 번호";
Class[] groups() default {};
Class[] payload() default {};
}
- 구현체 만들기
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})");
}
}
- 코드에 애노테이션 사용하기
@Getter
public class RequestDto {
// ...
@Phone
private String phoneNumber;
}
- 컨트롤러에 @Valid 추가하기
@RestController
public class ValidController {
@PostMapping("/valid")
public void valid(@RequestBody @Valid RequestDto dto){
System.out.println("벨리데이터 완성!");
}
}
댓글