validation 추상화
org.springframework.validation.Validator
애플리케이션에서 사용하는 객체 검증용 인터페이스
특징
어떤 계층과도 관계가 없다.
웹 계층 뿐 아니라 서비스, 데이터 등 다양한 곳에서 사용할 수 있다.
Bean Validation을 지원한다.
Bean Validation
자바 표준 스펙 = Java EE 표준 스펙
@NotEmpty, @NotNull 등
구현
인터페이스를 implemnets할 때는 두 메서드를 구현해야한다.
supports()
validate()
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.rejectIfEmptyOfWhitespace(...);
}
}
스프링 부트에서의 validator
@Component
public class AppRunner implements ApplicationRunner {
@Autowired
Validator validator;
@Override
public void run(ApplicationArguments args) {
Event event = new Event();
event.title("");
Errors errors = new BeanPropertyBindingResult(event, "event");
// 검증한다.
validator.validate(event, errors);
}
}
validator를 빈으로 바로 주입받을 수 있다.
Reference
Last updated
Was this helpful?