Validator 분리1
목표
컨트롤러에서 검증 로직이 차지하는 부분은 매우 크다. 이런 경우 별도의 클래스로 역할을 분리하는 것이 좋다.
그리고 이렇게 분리한 검증 로직을 재사용 할 수도 있다.
ItemValidator를 만들자.
스프링은 검증을 체계적으로 제공하기 위해 다음 인터페이스를 제공한다.
- supports() {} : 해당 검증기를 지원하는 여부 확인(뒤에서 설명)
- validate(Object target, Errors errors) : 검증 대상 객체와 BindingResult
ItemValidator 직접 호출하기
ValidationItemControllerV2 - addItemV5()
코드 변경
- addItemV4()의 @PostMapping 부분 주석 처리
ItemValidator를 스프링 빈으로 주입 받아서 직접 호출했다.
실행
실행해보면 기존과 완전히 동일하게 동작하는 것을 확인할 수 있다. 검증과 관련된 부분이 깔끔하게 분리되었다.