노션으로 다시 돌아갔습니다 😅

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

by mignon25

 

  1. 클라이언트가 요청 전송  -> DispatcherServlet 이라는 클래스에 요청이 전달된다. 
  2. DispatcherServlet 은 클라이언트의 요청을 처리할 Controller에 대한 검색을 HandlerMapping 인터페이스에게 요청
  3. HandlerMapping 은 클라이언트의 요청과 매핑되는 핸들러 객체를 다시 DispatcherServlet에게 리턴
    (요청을 처리할 Controller 클래스를 찾은 것)
  4. DispatcherServlet은 리턴 받은Controller 클래스에서 실제로 클라이언트 요청을 처리할 Handler 메서드를 찾아서 호출해야 하는데, 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 에게 전달
  12. DispatcherServlet은 View 로부터 전달받은 응답 데이터를 최종적으로 클라이언트에게 전달

 

 

DispatcherServlet의 역할

  • 대부분의 Spring MVC 구성요소들과 상호작용하며, 실제 처리 작업은 다른 구성 요소들에게 위임(Delegate) 
  • Front Controller Pattern
    • 이처럼 DispatcherServlet 이 애플리케이션의 가장 앞단에 배치되어 다른 구성요소들과 상호작용하며 클라이언트의 요청을 처리하는 패턴

 

 

추가

블로그의 정보

Mignon'S Dev Log

mignon25

활동하기