본문 바로가기

Spring/Spring MVC

[Spring MVC] Spring MVC 동작 방식


Spring MVC에서 클라이언트의 요청이 어떤 과정을 거쳐 컨트롤러까지 가는지 Spring MVC 내부의 동작 방식을 공부하겠습니다.

 

Spring MVC의 동작 방식과 구성 요소


 

위의 그림은 클라이언트의 요청이 Spring MVC 내부에서 어떻게 처리하는지를 보여주고 있습니다.

 

  1. 가장 먼저 클라이언트로부터 오는 요청을 받아 적합한 컨트롤러를 위임하는 프론트 컨트롤러인 DispatcherServlet이라는 클래스에 클라이언트의 요청이 전달됩니다.
  2. DispatcherServlet은 요청 정보를 통해 클라이언트의 요청을 위임할 Controller에 대한 검색을 HandlerMapping 인터페이스에게 요청합니다.
  3. HandlerMapping은 클라이언트 요청과 매핑되는 핸들러 객체를 다시 DispatcherServlet에게 리턴해줍니다
    • 핸들러 객체는 해당 핸들러의 Handler 메서드 정보를 포함하고 있습니다.
    • Handler 메서드는 Controller 클래스 안에 구현된 요청 처리 메서드를 의미합니다.
  4. DispatcherServlet은 HandlerAdapter에게 Handler 메서드의 호출을 위임합니다.
  5. HandlerAdapter는 DispatcherServlet으로부터 전달받은 Controller 정보를 기반으로 해당 Controller의 Handler메서드를 호출합니다.
  6. Controller의 Handler 메서드는 비즈니스 로직 처리 후 리턴 받은 Model 데이터를 HandlerAdapter에게 전달합니다.
  7. HandlerAdapter는 전달받은 Model 데이터와 View 정보를 다시 DispatcherServlet에게 전달합니다.
  8. DIspatcherServlet은 전달받은 View 정보를 다시 ViewResolver에게 전달해서 View 검색을 요청합니다.
  9. ViewResolver는 View 정보에 해당하는 View를 찾아서 View를 다시 반환합니다.
  10. DispatcherServlet은 ViewResolver로부터 받은 View객체를 통해 Model 데이터를 넘겨주면서 클라이언트에게 전달할 응답 데이터 생성을 요청합니다.
  11. View는 응답 데이터를 생성해서 다시 DispatcherServlet에게 전달합니다.

'Spring > Spring MVC' 카테고리의 다른 글

[Spring MVC] Spring MVC란?  (0) 2023.04.13