1. Spring MVC란?
Spring이 제공하는 기능 중, Servlet 기반의 MVC Framework가 있다.
Spring MVC = 기존의 MVC + Front Controller이다.
기존의 MVC패턴에 대한 설명은 아래 글에 있다.
2022.03.27 - [웹프로그래밍/Servlet & JSP] - Servlet & JSP (3) - MVC 패턴
2. Spring MVC 구성요소
1. DispatcherServlet
- Controller 앞에 있는 FrontController
- Client의 요청을 받음 => URI를 기반으로, 적절한 Controller를 찾아 요청 전달 => Contoller에게 받은 결과값에 해당하는 View를 찾아 Client에게 응답
"FrontController"란?
예전의 Controller 는 act(요청에 따라 method 호출, forward/redirect) + data(데이터 처리)였다.
여기서 act부분을 FrontController로 따로 분리한 것이다.
2. HandlerMapping
- 요청을 보고 이를 처리할 Controller를 찾는다.
3. Controller
- 직접 구현해야 하는 곳 (= Spring이 자동으로 해주지 않는 곳)
- Service & DAO 등을 사용해 요청에 대한 logic을 처리한다.
- Model(결과 데이터)과 View(결과 화면의 정보)를 반환한다.
4. ViewResolver
- Controller가 반환한 View이름을 기반으로 결과 화면의 위치를 반환
ex) login => /WEB-INF/views/login.jsp
5. View
- 결과를 보여줄 응답 화면을 생성 & 반환
- 항상 보이지 않음 ex) 파일 다운로드, JSON으로 응답
*Spring을 RestAPI로 사용할 경우, View가 아닌 Data를 반환하므로 ViewResolver와 View를 거치지 않는다.
'Programming > Spring' 카테고리의 다른 글
Spring (7) - Spring MVC 프로젝트 구조 (0) | 2022.04.29 |
---|---|
Spring (6) - Spring MVC 프로젝트 생성하기 (0) | 2022.04.27 |
Spring (4) - MySQL과 연결하기 (0) | 2022.04.25 |
Spring (3) - Container에 객체(Bean) 설정하기4 : Java (0) | 2022.04.23 |
Spring (3) - Container에 객체(Bean) 설정하기3 : Annotation (0) | 2022.04.23 |