2019의 게시물 표시

[Spring,Java] Validator 구현하기

이미지
validation 스프링에서 유효성 검사하기 (Spring Validator) 개요 스프링 프레임워크 4.0은 빈 검증기 1.0(JSR-303) 와 1.1(JSR-349)를 지원하며 Spring의 Validator 인터페이스에 적용할 수 있습니다. 어플리케이션은 빈 검증기를 전체에 사용할것인지, 아니면 부분적으로만 사용할것인지 선택할 수 있습니다. 검증 로직의 어노테이션 사용 없이 DataBinder 를 이용하여 Validator 를 추가적으로 등록할 수 있습니다. DataBinder 은 애플리케이션의 도메인모델에 동적으로 바인딩 할 때 유용합니다. 스프링은 데이터바인딩을 하기 위해 DataBinder 을 제공해줍니다. Validator 와 DataBinder 는 MVC 프레임워크에서 주로사용되는 유효성 검사 패키지 입니다. 스프링 MVC에서 Validator 인터페이스는 HTML 폼에 있는 모든필드를 검증하기 위해서 사용됩니다. controller 클래스안에 @InitBinder 어노테이션을 이용해서 설정할 수 있습니다. @InitBinder 어노테이션은 메소드레벨의 어노테이션이며, WebDataBinder 를 초기화하기 위해 사용합니다. WebDataBinder 클래스는 웹에서 온 request 파라미터들을 model 오브젝트에 바인드를 해줍니다. 자신이 만든 커스텀 Validator 를 컨트롤러에 등록하고 싶다면 WebDataBinder.addValidators() 메소드를 통해 등록이 가능합니다. 인자나, model 오브젝트에 @Validator 어노테이션을 작성하면, 핸들러 메소드가 이를 알고 커스텀 validator를 등록해줍니다. 만약 검증을 위반하는 사항이 발견된다면, 자동적으로 에러가 BindingResult 에게 가게 됩니다. 들어가며 검증기를 사용하는 방법은 두가지가 있습니다. 첫째로 모델 오브젝트에 주석을 사용해서 작성하는 방법과, 두번째로 Validator