Validator를 상속받는 객체를 생성한다.

public class ExampleValidator implements Validator {

//유효성 검사를 하고 싶은 객체의 타입을 조사한다. 여기서는 ExampleBean의 유효성 검사를 위해 만들었다.
    @Override
    public boolean supports(Class<?> aClass) {
        return ExampleBean.class.isAssignableFrom(aClass);
    }

//실제로 유효성 검사의 로직을 구현할 수 있는 메소드 부분이다.
    @Override
    public void validate(Object o, Errors errors) {
        ValidationUtils.rejectIfEmpty(errors, "data1", "error1");

        ExampleBean bean = (ExampleBean)o;
        String data1 = bean.getData1();
        if(data1.length()==0){
						//에러 객체에 오류정보를 저장하는 메소드.("프로퍼티 이름","코드이름","메세지")
            errors.rejectValue("data1", "lengthError", "message");
        }

    }
}

이후에 사용하고 싶은 Controller에 @InitBinder를 추가하고 메소드를 구현하면 된다.


@InitBinder
    public void initBinder(WebDataBinder webDataBinder){
        ExampleValidator validator = new ExampleValidator();
        webDataBinder.addValidators(validator);
    }

여기서 등록할 때 빈으로 등록해서 사용 해도 되고 아니면 일반 객체처럼 사용해도 된다.