Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

kyh코딩 공부 블로그

Spring MVC 패턴의 이해 본문

코딩연습

Spring MVC 패턴의 이해

킴용현 2023. 4. 3. 13:29

 

  1. HandlerMapping
    Client로 부터 들어온 Request를 분석하여 매핑된 Controller가 있는지 확인합니다.
  2. HandlerAdapter
    매핑 대상 Controller에게 Request 처리요청을 보냅니다.
  3. ViewResolver
    Controller에서 view를 return 했을경우 해당하는 view를 찾아 client에게 return 합니다.

위 그림은 Spring Document에서 제공하는 이해를 위한 그림 입니다. DispatcherServlet 내부에 Servlet WebApplicationContext와 Root WebApplicationContext가 동작하는것으로 보이지만 이 두 ApplicationContext가 바로 process 그림에서 보셨던 스프링 컨테이너(Spring container) 에서 동작하는 컨텍스트라고 이해해주시면 될 것 같습니다.

서블릿 컨테이너가 서블릿의 생명주기를 관리했다면, 스프링컨테이너는 Java object인 빈(Bean)의 라이프 사이클 관리하여 Spring 프레임워크의 특징인 IOC(제어역전)와 DI(의존성주입)을 제공해주는 역할을 합니다.

 

  1. 사용자가 URL 을 통해서 Tomcat 서버에 Request 한다
  2. DispatcherServlet 은 Request 를 처리하기 위한 Controller 를 HandlerMapping 빈 객체에게 검색 요청한다.
  3. HandlerMapping 은 Client 의 URL 을 이용해서 이를 처리할 Controller 빈 객체를 DispatcherServlet 에게 return 한다.
  4. DispathcerServlet은 Controller 객체를 처리 할 수 있는 HandlerAdapter 빈 객체에게 요청 처리를 위임한다.
  5. HandlerAdapter는 Controller에게 알맞은 method 를 호출한다.
  6. Controller는 비즈니스 로직을 수행 한 후 처리 결과를 HandlerAdapter에게 return 한다.
  7. HandlerAdapter는 DispatcherServlet에게 Controller의 실행 결과를 ModelAndView 객체로 변환 하여 return 한다.
  8. DispatcherServlet은 결과를 보여줄 View 를 검색하기 위해 ViewResolver 빈 객체에게 ModelAndView 안의 해당 View 를 검색 요청한다.
  9. ViewResolver는 ModelAndView안의 View 이름에 해당하는 View객체를 찾거나 생성해서 return 한다.
    • JSP를 사용하는 ViewResolver는 매번 새로운 View 객체를 생성해서 DispathcerServlet에게 return한다.
  10. DispatcherServlet은 ViewResolver가 return한 View 객체에게 request result 생성을 요청한다.
  11. View 객체는 JSP를 사용하는 경우 JSP를 실행하여 result를 Rendering한 후 Client에게 Rendering된 View를 응답한다.