Spring Boot/Core

Validation 추상화

Holy Moly 2022. 7. 25. 16:04

애플리케이션에서 사용하는 객체 검증용 인터페이스

 

특징

  • 어떤 계층과도 관계가 없다 -> 모든 계층(웹,서비스,데이터)에서 사용가능
  • DataBinder에 들어가 바인딩 할 때 같이 사용되기도 한다.

 

인터페이스

  • boolean supports(Class clazz): 어떤 타입의 객체를 검증할 때 사용할 것인지 결정함
  • void validate(Object obj, Errors e): 실제 검증 로직을 이 안에서 구현
    • 구현할 때 ValidationUtils 이용시 편리

 

스프링 부트 2.0.5이상 버전 사용시 LocalValidatorFactoryBean를 빈으로 자동 등록

간단한 검증은 hibernate-validator로  Entity Field에 @Min, @Email, @NotNull등 annotation을 통해 Validate가능