백엔드/Spring

[Spring] MVC 패턴 핸들러, 어댑터

happy_life 2022. 6. 14. 13:32

목차

1. 핸들러

2. 어댑터

 

 

 

1. 핸들러

1) 개요

웹 요청을 실제로 처리하는 객체를 핸들러라고 한다. 핸들러에는 여러 종류가 있을 수 있다. 따라서 특정 핸들러를 찾기 위해 핸들러 매핍 정보를 통해 핸들러를 조회하게 된다. 아래의 코드를 보자

 private final Map<String, Object> handlerMappingMap = new HashMap<>();

    public FrontControllerServletV5() {
    	//핸들러 맵핑 정보
        handlerMappingMap.put("/front-controller/v5/v3/members/new-form", new MemberFormControllerV3());
        handlerMappingMap.put("/front-controller/v5/v3/members/save", new MemberSaveControllerV3());
	
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      // 핸들러 가져오기
      String requestURI = request.getRequestURI();
      Object handler = handlerMappingMap.get(requestURI);
      }
    }

예를 들어, url: /front-controller/v5/v3/members/new-form 의 요청인 경우 핸들러는 MemberFormControllerV3()의 객체일 것이다. 이 핸들러는 key인 requestURI로 조회할 수 있다.

 

 

2. 어댑터

핸들러마다 각각 그 핸들러를 처리해주는 것이 필요한데 이것이 바로 어댑터이다. 어댑터 또한 각 핸들러의 숫자만큼 필요하다. 예를 들어 V3 핸들러에는 V3 전용 어댑터가 필요하다. 

FrontController에서 어댑터의 메서드를 통해 핸들러를 처리하게 된다.

 

 

 

 

 

 

 

 

 

본 포스팅은 김영한님 인프런 강의내용을 바탕으로 복습을 위해 작성하였습니다. 강의를 통해 배운 개념을 바탕으로 추가적으로 공부한 부분과 간단한 코드 예제를 작성하였습니다. 코드 전체를 복사한 것이 아니라 임의로 수정하거나 생략하였습니다.