Updated:

1. 개요

스프링 MVC는 Dispatcher Servlet을 시작으로, 사용자 요청 및 응답에 대한 처리를 쉽게 가능하도록 한다. 이번에는 스프링 MVC 동작방식에 대해 알아보도록 하자.

2. 스프링 MVC 동작방식

  1. 클라이언트가 HTTP 요청이 Dispatcher Servlet에게 전달
  2. Handler Mapping에서 요청을 처리하기 위한 Handler 조회
  3. 조회 된 Handler를 실행할 수 있는 Handler Adapter 조회
  4. 조회 된 Handler Adapter에 요청 전달
  5. Handler에 요청을 전달하여 로직 수행
  6. ModelAndView 반환
  7. Dispatcher Servlet에게 ModelAndView 전달
  8. ViewResolver에게 View의 논리이름 전달 (ex. member-list)
  9. Dispatcher Servlet에게 View의 물리이름 전달 (ex. /resources/templates/member-list.html)
  10. View를 통해 View 렌더링
  11. 클라이언트에게 HTML 응답

3. Handler Mapping 우선순위

0 : RequestMappingHandlerMapping

  • Annotation 기반의 컨트롤러에서 사용

1 : BeanNameUrlHandlerMapping

  • 스프링 빈의 이름으로 찾을 때 사용

4. Handler Adapter 우선순위

0 : RequestMappingHandlerAdapter

  • Annotation 기반의 컨트롤러에서 사용

1 : HttpRequestHandlerAdapter

  • HttpRequestHandler 처리를 위해 사용

2 : SimpleControllerHandlerAdapter

  • Controller 인터페이스에서 사용

5. View Resolver 우선순위

1 : BeanNameViewResolver

  • 빈 이름으로 뷰를 찾을 때 사용

2 : InternalResourceViewResolver

  • JSP를 처리하기 위해 사용

Updated:

Leave a comment