본문 바로가기
MVC with 김영한

스프링 MVC

by wonseok99 2021. 10. 15.

최종적으로 직접 구현한 MVC 프레임 워크

  1. 클라이언트의 HTTP Request To 프론트컨트롤러
  2. 프론트컨트롤러에서 해당 Request에 따라 핸들러 조회 및 매핑
  3. 핸들러 어댑터 목록 중, 해당 핸들러를 처리할 수 있는 어댑터 조회
  4. 핸들러 어댑터를 통해 핸들러를 호출
  5. 핸들러를 통해 ModelView를 생성해 프론트컨트롤러에 반환
  6. 뷰 리졸버를 통해 view 논리이름을 물리이름으로 반환(MyView)
  7. 반환받은 MyView렌더링 작업(JSP 호출)
  8. HTML 응답

SpinrgMVC와 로직구조는 거의 비슷하다! 
이러한 복잡한 과정들을 SpringMVC는 어노테이션을 활용하여 편리하게 사용할 수 있다.

 


MyMVC  ->  SpringMVC 

    • FrontController  →  DispatcherServlet
    • handlerMappingMap  →  HandlerMapping
    • MyHandlerAdapter  →  HandlerAdapter
    • ModelView  →  ModelAndView
    • viewResolver  →  ViewReslover
    • MyView  →  View

 

 

DispatcherServlet

DispatcherServlet 도 HttpServlet을 상속받아 사용하고 서블릿으로 동작한다.
SpringMVC 는 DispatcherServlet을 서블릿으로 자동으로 등록하면서 모든 경로(' urlPatterns = "/" ')에 대해서 매핑한다.
구체적인 경로일수록 우선순위가 높아진다.

  1. 서블릿이 호출되면 HttpServlet이 제공하는 service()가 호출됨
  2. 스프링 MVC는 DispatcherServlet의 부모인 FrameworkServlet에서 service()가 오버라이드 되어있음
  3. FrameworkServlet.service()를 시작으로 기존 MVC 흐름에따라 메소드들이 호출되면서 최종적으로DispatcherServlet.doDispatch() 가 호출된다

'MVC with 김영한' 카테고리의 다른 글

로깅(logging)  (0) 2021.10.17
스프링 애노테이션  (0) 2021.10.16
MVC 프레임워크  (0) 2021.10.07
MVC 패턴  (0) 2021.10.06
서블릿  (0) 2021.10.04