SpringMVC란?
Spring MVC의 특징
- Spring은 DI나 AOP같은 기능뿐만 아니라, 서블릿 기반의 웹 개발을 위한 MVC프레임워크를 제공한다.
- SpringMVC는 모델2 아키텍쳐와 FrontController 패턴을 프레임워크 차원에서 제공한다.
- SpringMVC프레임워크는 Spring을 기반으로 하고 있기 때문에 Spring이 제공하는 트랜잭션 처리나 DI 및 AOP등을 손쉽게 사용한다.
SpringMVC와 FrontController 패턴
어떤 연관성이 있을까?
- 대부분의 MVC 프레임워크들은 FrontController 패턴을 적용해서 구현한다.
- Spring MVC도 FrontController역할을 하는 DispatcherServlet 이라는 클래스를 계층의 맨 앞단에 놓고, 서버로 들어오는 모든
요청을 받아서 처리하도록 구성되어있다.
DispatcherServlet이 FrontController 역할을 한다.
- 예외가 발생했을 때, 일관된 방식으로 처리하는 것도 FrontController의 역할이다.
DispatcherServlet 클래스
- FrontController 패턴 적용
- Web.xml에 설정한다.
- 클라이언트로부터의 모든 요청을 전달 받게된다.
- Controller나 View와 같은 Spring MVC의 구성요소를 이용하여 클라이언트에게 서비스를 제공한다.
DispatcherServlet은 개발자가만든 Controller에 위임한다.
개발자가만든Controller는 핸들링(처리) 하여 모델을 DispatcherServlet에 전달한다.
DispatcherServlet은 View에게 model전달한다.
view는 화면생성후 DispatcherServlet에게 전달한다.
Spring MVC의 주요 구성 요소
DispatcherServlet |
- 클라이언트의 요청을 받아서 Controller에게 클라이언트의 요청을 전달하고, 리턴한 결과값을 View에게 전달하여 알맞은 응답을 생성한다. |
HandlerMapping |
- URL과 요청 정보를 기준으로 어떤 핸들러 객체를 사용할지 결정하는 객체이며, DispaccherServlert에게 알려준다. |
Controller |
- 클라이언트의 요청을 처리한 뒤, Model를 호출하고 그 결과를 DispatcherServlet에게 알려 준다. |
ModelAndView |
- Controller가 처리한 데이터 및 화면에 대한 정보를 보유한 객체이다. |
View |
- Controller의 처리 결과 화면에 대한 정보를 보유한 객체이다. |
ViewResolver |
- Controller가 리턴한 뷰 이름을 기반으로 Controller 처리 결과를 생성할 뷰를 결정한다. |
개발자가 주로 사용하는 클래스 |
- DispatcherServlet,Controller,ModelAndView,View |
Spring MVC의 주요 구성 요소의 요청 처리 과정
1. 클라이언트의 요청이 DispaccherServlet에게 전달된다.
2. DispatcherServlet은 HandlerMapping을 사용하여 클라이언트의
요청을 처리할 Controller를 획득한다.(컨트롤러를 알려줌)
3. DispatcherServlet은 Controller 객체를 이용하여 클라이언트의 요청을 처리한다.
4. Controller는 클라이언트 요청 처리결과와 View페이지 정보를
담은 ModelAndView 객체를 반환한다.
'개발 소발 > 개발 Spring' 카테고리의 다른 글
Spring IoC(Inversion of Control),Bean,의존성주입이란? (0) | 2020.07.08 |
---|---|
프레임워크 개념 (0) | 2018.01.26 |
MVC패턴이란? (0) | 2018.01.11 |
Mybatis Mapper 인터페이스란? (0) | 2018.01.11 |
Mybatis 셋팅이란? (0) | 2017.12.21 |