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

- 클라이언트가 요청 전송 -> DispatcherServlet 이라는 클래스에 요청이 전달된다.
- DispatcherServlet 은 클라이언트의 요청을 처리할 Controller에 대한 검색을 HandlerMapping 인터페이스에게 요청
- HandlerMapping 은 클라이언트의 요청과 매핑되는 핸들러 객체를 다시 DispatcherServlet에게 리턴
(요청을 처리할 Controller 클래스를 찾은 것) - DispatcherServlet은 리턴 받은Controller 클래스에서 실제로 클라이언트 요청을 처리할 Handler 메서드를 찾아서 호출해야 하는데, HandlerAdapter에게 이 Handler 메서드 호출을 위임한다.
- HandlerAdapter는 DispatcherServlet으로부터 Controller 정보를 전달받아 해당 Controller의 Handler 메서드 호출
<<<<반환점>>>> - Controller의 Handler 메서드는 비즈니스 로직 처리 후 리턴받은 Model 데이터를 HandlerAdapter에게 전달
- HandlerAdapter 는 전달받은 Model 데이터와 View 정보를 다시 DispatcherServlet에게 전달
- DispatcherServlet은 전달받은 View 정보를 다시 ViewResolver에게 전달해서 View 검색을 요청
- ViewResolver 는 View 정보에 해당하는 View 를 찾아서 View 를 다시 리턴
- DispatcherServlet 은 ViewResolver로부터 전달받은 View 객체로 Model 데이터를 넘겨주며 클라이언트에게 전달할 응답 데이터 생성을 요청
- View 는 응답 데이터를 생성해서 다시 DispatcherServlet 에게 전달
- DispatcherServlet은 View 로부터 전달받은 응답 데이터를 최종적으로 클라이언트에게 전달
DispatcherServlet의 역할
- 대부분의 Spring MVC 구성요소들과 상호작용하며, 실제 처리 작업은 다른 구성 요소들에게 위임(Delegate)
- Front Controller Pattern
- 이처럼 DispatcherServlet 이 애플리케이션의 가장 앞단에 배치되어 다른 구성요소들과 상호작용하며 클라이언트의 요청을 처리하는 패턴
추가
'Spring' 카테고리의 다른 글
| [Spring MVC] API 계층 적용하기 (Prac Project - 1. 커피 주문 애플리케이션 시작) (0) | 2023.04.16 |
|---|---|
| [Spring MVC] API 계층 (Prac Project - 2. ResponseEntity, Header) (0) | 2023.04.16 |
| Spring MVC 란? (0) | 2023.04.14 |
| [빈 스코프] 빈 스코프와 프로토타입 스코프 (0) | 2023.04.13 |
| [AOP] Advice (0) | 2023.04.12 |
블로그의 정보
Mignon'S Dev Log
mignon25