반응형

Validator 분리1


목표

  • 복잡한 검증 로직을 별도로 분리하자.


컨트롤러에서 검증 로직이 차지하는 부분은 매우 크다. 이런 경우 별도의 클래스로 역할을 분리하는 것이 좋다.
그리고 이렇게 분리한 검증 로직을 재사용 할 수도 있다.


ItemValidator를 만들자.


스프링은 검증을 체계적으로 제공하기 위해 다음 인터페이스를 제공한다.

  • supports() {} : 해당 검증기를 지원하는 여부 확인(뒤에서 설명)
  • validate(Object target, Errors errors) : 검증 대상 객체와 BindingResult

 

ItemValidator 직접 호출하기
ValidationItemControllerV2 - addItemV5()


코드 변경

  • addItemV4()@PostMapping 부분 주석 처리

ItemValidator를 스프링 빈으로 주입 받아서 직접 호출했다.

실행
실행해보면 기존과 완전히 동일하게 동작하는 것을 확인할 수 있다. 검증과 관련된 부분이 깔끔하게 분리되었다.

반응형