체계적인 검증을 위해 스프링은 Validator 인터페이스를 제공한다
public interface Validator {
boolean supports(Class<?> clazz);
void validate(Object target, Errors errors);
}
supports() {} : 해당 검증기를 지원하는 여부 확인
validate(Object target, Errors errors) : 검증 대상 객체와 BindingResult
@InitBinder
public void init(WebDataBinder dataBinder) {
log.info("init binder {}", dataBinder);
dataBinder.addValidators(itemValidator);
}
supports()를 통해 구분🔎 검증시 @Validated @Valid 둘 다 사용 가능
@Validated: 스프링 전용 검증 애노테이션@Valid: 자바 표준 검증 애노테이션 , build.gradle 의존관계 추가 필요implementation 'org.springframework.boot:spring-boot-starter-validation'