ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [spring] 스프링 MVC 라이프사이클 이해하기();
    Spring 2020. 2. 25. 22:44
    반응형
    웹 요청을 처리하기 위해 스프링은 다양한 구성 요소들을 연동한다. 그 중심에는 항상 DispatcherServlet 객체가 존재한다!! 
    스프링 MVC 라이프 사이클을 간단하게 정리해 보았다. 라이프 사이클을 알아두는 것만 해도 스프링 MVC의 큰 틀을 이해할 수 있다.  :)

    spring MVC 라이프사이클 ㄱㄱ

     

    스프링 MVC 라이프사이클


    1. 클라이언트로부터 웹브라우저를 통해 요청이 들어오면 DispatcherServlet 객체가 요청을 가로챈다.
    2. DispatcherServlet 객체는 요청을 처리하기 위해 HandlerMapping 객체에게 요청 경로에 부합하는 컨트롤러 객체 검색을 요청한다. HandlerMapping 객체는 요청을 처리하고 알맞은 컨트롤러 객체를 DispathcerServlet 객체에게 리턴한다.
    3. 컨트롤러 객체를 전달받은 DispatcherServler 객체은 @Controller, Controller 인터페이스, HttpRequestHandler 인터페이스를 동일한 방식으로 처리하기 위해 중간 역할을 하는 HandlerAdapter 객체에게 전달받은 컨트롤러 객체를 위임한다.
    4. HandlerAdapter 객체는 컨트롤러에 알맞은 메서드를 실행하며 Service 객체, Repository 객체를 지나 DB 커넥션을 맺으면서 요청을 처리한다.
    5. 요청 결과는 다시 DispatcherServlet에게 리턴되는데, 이때 처리 결과를 ModelAndView 객체로 변환하고 객체 내부에 view name을 포함한다.
    6. 컨트롤러 요청 처리 결과를 ModelAndView 객체로 받은 DispatcherServlet 객체는 ViewResolver 객체에게 요청 처리 결과를 넘겨준다.
    7. 넘겨진 ModelAndView 객체에는 컨트롤러가 리턴한 view name을 담고 있기 때문에 ViewResolver 객체는 view name에 해당하는 View 객체를 찾거나 생성해서 리턴한다.
    8. DispatcherServlet 객체는 ViewResolver 객체가 리턴한 View 객체에게 응답 결과 생성을 요청하고 웹 브라우저에게 응답한다.

     

    구성 요소 정리


    DispatcherServlet 객체의 역할

     - 클라이언트의 실제 요청을 처리.

     - 모든 연결을 담당하는 창구역할 한다. 

     

    HandlerMapping 객체의 역할

     - 클라이언의로부터 요청받은 경로에 부합하는 컨트롤러 객체를 찾는다.

     

    HandlerAdapter 객체의 역할

     - HandlerMapping 객체를 통해 찾은 컨트롤러 객체를 실행한다.

     - @Controller 애노테이션을 적용한 컨트롤러, 스프링 2.5까지 주로 사용됐던 Controller 인터페이스를 구현한 컨트롤러, 특수 목적으로 사용되는 HttpRequestHandler 인터페이스를 구현한 클래스를 동일한 방식으로 실행시켜준다.

     - DispathcerServlet 객체는 실행 결과를 ModelAndView 타입으로만 받기때문에 처리 결과를 ModelAndView 타입으로 변환해 준다.

     

    ViewResolver 객체의 역할

     - 전달받은 ModelAndView에는 view name을 담고 있으므로 해당하는 view name을 통해서 부합하는 view를 찾는다.

     

     

    반응형

    댓글

Designed by Tistory.