개발일지/Spring

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

2022. 10. 22. 22:35
728x90

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

 

1. 클라이언트가 요청을 전송하면 DispatcherServlet 이라는 클래스에 요청이 전달됨

 

2. DispatcherServlet은 클라이언트의 요청을 처리할 Controller에 대한 검색을 HandlerMapping 인터페이스에 요청

 

3. HandlerMappting은 클라이언트 요청과 매핑되는 핸들러 객체를 다시 DispatcherServlet에게 리턴

핸들러 객체는 해당 핸들러의 Handler 메서드 정보를 포함하고 있음
Handler 메서드는 Controller 클래스 안에 구현된 요청 처리 메서드를 의미

 

4. 실제로 클라이언트 요청을 처리할 Handler 메서드를 찾아서 호출해야 하므로 DispatcherServlet은 Handler 메서드를 직접 호출하지 않고, HandlerAdpater에게 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 구성요소들에게 실제 요청에 대한 처리를 위임

DispatcherServlet이 애플리케이션의 가장 앞단에 배치되어 다른 구성요소들과 상호작용을 하면서 클라이언트의 요청을 처리하는 패턴을 Front Controller Pattern 이라고 한다
728x90
저작자표시 비영리 변경금지 (새창열림)

'개발일지 > Spring' 카테고리의 다른 글

Spring JPA 엔티티 매핑  (0) 2022.11.05
JPA (Java Persistence API)  (0) 2022.11.04
Spring - Pagination  (0) 2022.10.31
Spring - AOP  (0) 2022.10.23
Spring MVC  (0) 2022.10.22
'개발일지/Spring' 카테고리의 다른 글
  • JPA (Java Persistence API)
  • Spring - Pagination
  • Spring - AOP
  • Spring MVC
E-room
E-room
나의 성취 기록들
E-room
E-room Achievement Logs
E-room
전체
오늘
어제
  • 분류 전체보기
    • 개발일지
      • 돌픽
      • Spring
      • Algorithm
      • Java
      • Node.js
      • Python
      • DataBase
      • 웹개발
      • JavaScript
      • 컴퓨터지식
      • Django
    • 이것저것
    • 피드백 감사히 받겠습니다

블로그 메뉴

  • 태그
  • Github
  • 돌픽-이상형월드컵

인기 글

최근 글

최근 댓글

태그

  • 파이썬
  • 탐색
  • Java
  • 완전탐색
  • dfs
  • 자료구조
  • 순열
  • 프로그래밍
  • algorithm
  • Spring
  • mysql
  • 알고리즘
  • 조합
  • 다이나믹
  • dp
  • API
  • boot
  • search
  • 자바
  • JPA
  • 생활코딩
  • 재귀
  • 백트래킹
  • python
  • Django
  • 수열
  • SQL
  • javascript
  • 백준
  • 스파르타코딩클럽

공지사항

hELLO · Designed By 정상우.
E-room
Spring MVC의 동작 방식과 구성 요소
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.