• 티스토리 홈
starryeye
  • 프로필사진
    starryeye
    • 분류 전체보기 (189)
      • C++ (17)
      • Java (24)
      • OOP (5)
      • Spring Reactive Stack (12)
        • Reactive Streams (3)
        • Netty (4)
        • Reactor (1)
        • Webflux (3)
        • DB, Cache 연동 (1)
      • Spring (90)
        • Core (17)
        • MVC (33)
        • Client (2)
        • Security (4)
        • DB, Cache 연동 (33)
      • DataBase (12)
        • RDBMS (2)
        • NoSQL (10)
      • Message Broker (6)
      • Web (4)
      • Network (4)
      • 대규모 시스템 설계 (15)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • Spring MVC 마스터하기 Validation 7
        2022년 05월 26일
        • starryeye
        • 작성자
        • 2022.05.26.:15
        반응형

        Validation 6 에서는 Validator 인터페이스를 사용하여 컨트롤러에서 검증로직을 뺄 수 있었다..

         

        하지만, 그 한줄.. validator의 validate 메서드 호출하는 그 한줄.. 도 빼고 싶다..

         

        WebDataBinder를 사용해보자.

         

         

        WebDataBinder

        스프링의 파라미터 바인딩의 역할과 검증기능을 포함한다..

        WebDataBinder에 구현한 Validator를 넣어주기만 스프링이 알아서 처리 해준다.

         

        init : 메서드 컨트롤러가 호출 될 때 마다.. 호출 되는 메서드이다.

        요청이 올 때 마다 WebDataBinder가 생성되고 그 WebDataBinder에 주입받은 Validator가 추가된다.

        @InitBinder : 해당 클래스 컨트롤러에만 영향이 있다.

        참고로 글로벌 설정(모든 클래스 컨트롤러)은 main 메서드가 있는 메인 클래스? 에서 별도로 작업 해야한다.

        (비 추천)

         

        @Validated, @Valid

        init에서 WebDataBinder를 통해 구현한 Validator를 등록해놓고

        위와 같이, 검증할 대상 파라미터 앞에 @Validated(스프링지원) 또는 @Valid(자바표준)을 적용하면

        해당 메서드 컨트롤러가 호출 될 때 항상 검증된다.

        @Validated : Validator의 validate 메서드를 실행하라는 어노테이션이다.

        @Validated 어노테이션이 붙으면 앞서 WebDataBinder에 등록한 Validator를 찾아 실행함.

        그러나.. 컨트롤러의 init 메서드에서 여러 Validator를 등록 해놨을 수도 있다..

        이때 사용되는게 Validator의 supports 메서드이다. 

        반응형

        'Spring > MVC' 카테고리의 다른 글

        Spring MVC 마스터하기 Validation 9  (0) 2022.05.26
        Spring MVC 마스터하기 Validation 8  (0) 2022.05.26
        Spring MVC 마스터하기 Validation 6  (0) 2022.05.26
        Spring MVC 마스터하기 Validation 5  (0) 2022.05.17
        Spring MVC 마스터하기 Validation 4  (0) 2022.05.17
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바