Spring MVC란?
스프링이 제공하는 서블릿 기반의 MVC 프레임워크이다. 스프링 서블릿 또는 스프링 MVC라고 하며, Front Controller역할을 하는 DispatcherServlet을 핵심 엔진으로 사용한다. 스프링이 제공하는 AOP, 트랜젝션 처리, DI 등의 기능을 그대로 사용하면서 MVC 패턴을 기반하여 웹 어플리케이션을 개발할 수 있다.
Spring MVC 구성 주요 컴포넌트
- DispatcherServlet
- Front Controller로서 클라이언트의 요청을 전달 받는다. Controller에게 클라이언트의 요청을 전달하고, Controller가 리턴한 결과값을 View에 전달하여 알맞은 응답을 생성하도록 한다.
- Controller
- 클라이언트의 요청을 처리한 뒤, 그 결과를 DispatcherServlet에게 알려준다. 스트럿츠의 Action과 동일한 역할을 수행한다.
- HandlerMapping
- 클라이언트의 요청 URL을 어떤 Controller가 처리할지를 결정한다.
- ViewResolver
- Command의 처리 결과를 보여줄 View를 결정한다.
- View
- 응답하는 로직을 처리
- ModelAndView
- 응답할 View와 View에게 전달할 값을 저장하는 용도의 객체
Spring MVC 흐름
1. DispatcherServlet이 요청을 수신
- 단일 Front Controller Servlet이 요청을 수신
- 요청을 수신하여 처리를 다른 컴포넌트에 위임
- 어느 컨트롤러에 요청을 전송할지 결정
2. DispatcherServlet은 HandlerMapping에 어느 컨트롤러를 사용할 것인지 문의
3. DispatcherServlet은 요청 컨트롤러에게 전송하고 컨트롤러는 요청 처리 후 결과 리턴
- 비지니스 로직 수행 후 결과 정보(Model)가 생성되어 JSP와 같은 뷰에서 사용됨
4. ModelAndView를 생성하여 DispatcherSerlvet에 리턴
5. ModelAndView 정보를 바탕으로 ViewResolver에게 View를 요청
6. View는 결과정보를 사용하여 화면을 표현
'Wanna be a Programmer > Spring Framework' 카테고리의 다른 글
Spring MVC 구현(Controller, ModelAndView) (0) | 2012.06.28 |
---|---|
Spring MVC 구현(Dispatcher, HandlerMapping) (0) | 2012.06.27 |
Annotation(어노테이션) (0) | 2012.06.26 |
스프링 프레임워크 - AOP(Aspect Oriented Programming) (0) | 2012.06.25 |
스프링 프레임워크 및 DI(Dependency Injection)패턴 (0) | 2012.06.22 |