[Spring] Validator

hi·2022년 12월 4일
0

체계적인 검증을 위해 스프링은 Validator 인터페이스를 제공한다

public interface Validator {

	boolean supports(Class<?> clazz);
	void validate(Object target, Errors errors);
}

supports() {} : 해당 검증기를 지원하는 여부 확인
validate(Object target, Errors errors) : 검증 대상 객체와 BindingResult

WebDataBinder

@InitBinder
public void init(WebDataBinder dataBinder) {

	log.info("init binder {}", dataBinder);
	dataBinder.addValidators(itemValidator);
}
  • WebDataBinder 에 검증기를 추가하면 해당 컨트롤러에서는 검증기를 자동으로 적용 가능

@Validated

  • WebDataBinder 에 등록한 검증기를 찾아서 실행
  • 검증기가 여러개이면 supports()를 통해 구분

🔎 검증시 @Validated @Valid 둘 다 사용 가능

  • @Validated : 스프링 전용 검증 애노테이션
  • @Valid : 자바 표준 검증 애노테이션 , build.gradle 의존관계 추가 필요
implementation 'org.springframework.boot:spring-boot-starter-validation'

0개의 댓글