[Spring] Spring MVC 처리 과정

유존돌돌이·2022년 2월 25일
0

Spring

목록 보기
15/26
post-thumbnail

1. MVC란?

1) Model
어플리케이션의 데이터이며, 모든 데이터를 갖고 있는 컴포넌트이다.
2) View
시각적인 UI 요소를 지칭하는 용어이며, 클라이언트에서 직접 확인할 수 있는 부분이다.
3) Controller
Model과 View를 연결해주는 역할을 한다.

2. MVC 처리순서

1) [클라이언트 -> Servlet Container] : 서버 요청을한다.
2) [Servlet Container -> DispatcherServlet] : Front controller인 DispatcherServlet가 요청을 받는다.
3) [DispatcherServlet -> HandlerMapping] : DistpatcherServlet는 HandlerMapping을 통해 요청 위임 컨트롤러를 찾는다.(HandlerMapping은 servlet-context.xml에서 @Controller로 등록한 것들을 스캔해서 찾아놨기 때문에 어느 컨트롤러에게 요청을 위임해야할지 알고 있다.)
4) [HandlerMapping -> DispatcherServlet] : HandlerMapping을 통해 찾은 Handler(Controller)의 정보를 받는다.
5) [DispatcherServlet -> HandlerAdapter] : 찾은 Handler를 전달 받아 Controller로 전달한다.
6) [HandlerAdapter -> Controller] : 서비스로 요청을 넘겨 비지니스 로직을 서비스에게 위임한다.
5) [Controller -> Service] : 비지니스 로직을 수행하고 DB 접근이 필요하다면 DAO에 요청하여 처리를 위잉한다.
6) [Service -> DAO -> DB -> DTO -> Service] : DB정보를 받아 DTO를 통해 받아 서비스에게 전달한다.
7) [Service -> Controller -> Handler Adapter] : 서비스는 전달받은 응답값을 컨트롤러에 전달하고 Handler Apdater는 DistpatcherSerlvet에 modelandview로 넘겨준다.
8) [Handler Adapter -> DispatcherServlet -> ViewResolver -> DispatcherServlet] : 응답값을 받아 어떤 뷰인지 찾아준다.
9) [DispatcherServlet -> View->DispatcherServlet] : 해당 뷰 타입을 찾아 뷰를 만들어 다시 응답받는다.
10) [DispaycherServlet -> Servlet Container] : 렌더링된 뷰를 전달하여 클라이언트에게 전달한다.

간단한 처리 구조도

0개의 댓글