org.springframework.validation.Validator

인터페이스

public class EventValidator implements Validator {

	@Override
	public boolean supports(Class<?> clazz) {
		return Event.class.equals(clazz);
	}

	@Override
	public void validate(Object target, Errors errors) {
		ValidationUtils.rejectIfEmptyOrWhitespace(errors, "title", "notempty", "Empty title is now allowed.")
	}
}

validator 사용

Event event = new Event();
EventValidator eventValidator = new EventValidator();
Errors errors = new BeanPropertyBindingResult(event, "event");

eventValidator.validate(event, errors);

System.out.println(errors.hasErrors());

errors.getAllErrors().forEach(e -> {
	System.out.println("===== error code =====");
	Arrays.stream(e.getCodes()).forEach(System.out::println);
	System.out.println(e.getDefaultMessage());
});

스프링 부트 2.0.5 이상 버전을 사용할 때