Spring MVC RequestMapping 원리

Spring MVC에서 @RequestMapping이 동작하는 원리를 이해하려면 다음 사항들을 알아야 한다.

  • 핸들러: 클라이언트로부터 들어온느 HTTP요청을 처리하는 컴포넌트를 의미한다. Spring MVC에서는 보통 Controller 클래스나 그 안의 메서드를 핸들러라고 부른다. @RequestMapping 어노테이션은 특정 URL패턴에 대한 요청이 들어왔을 때, 해당 요청을 처리할 핸들러(Controller 또는 메서드)를 지정한다.

  • 핸들러 매핑: 클라이언트로부터 들어온 HTTP 요청 URL을 기반으로 적절한 핸들러를 찾아 주는 역할을 하는 컴포넌트다. Spring MVC에서 @RequestMapping 어노테이션은 Handler Mapping 역할도 수행하며 이 어노테이션이 붙은 메서드와 URL 패턴 간의 매핑 정보를 갖고 있다.

  • 핸들러 어뎁터: 선택된 핸들러가 실제로 HTTP 요청을 처리할 수 있도록 도와주는 컴포넌트다. 즉 Handler Adapter는 Handler Mapping에 의해 선택된 특정 형태의 핸들러가 일관된 방식으로 요청을 처리하도록 변환해주는 역할을 수행한다.

순서

  1. 클라이언트로부터 HTTP 요청이 들어온다
  2. DispatcherServlet이 해당 요청에 대응되는 HandlerMapping 구현체를 찾는다
  3. 해당 HandlerMapping 구현체가 요청 URL에 맞게 정의된 handler를 찾아 반환한다.
  4. DispatcherServlet은 반환받은 handler 객체를 실행하기 위한 HandlerAdapter 구현체를 찾는다.
  5. HandlerADapter 구현체가 실제 handler의 비즈니스 로직을 실행하고 그 결과를 ModelAndView 객체로 변환한다.
  6. DispatcherServlet은 ModelAndView를 사용해 View를 렌더링하고 HTTP 응답을 클라이언트에게 전송한다.
profile
클린코드와 UX를 생각하는 비즈니스 드리븐 소프트웨어 엔지니어입니다.

0개의 댓글