MVC 패턴이란?
사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴
Spring MVC란?
Spring 에서 제공하는 웹 모듈로Model
,View
,Controller
세가지 구성요소를 사용해 사용자의 다양한 HTTP Request 를 처리하고 단순한 텍스트 형식의 응답부터 REST 형식의 응답과 View를 표시하는 html를 return하는 응답 등, 다양한 처리를 할 수 있는 프레임워크다.
MVC는 Model, View, Controller 이지만, 이들을 잘 동작시기키 위한 구성요소가 포함된다.
- DispatcherServlet(Front Controller)
- Handler(Controller)
- ModelAndView
- View Resolver
DispatcherServlet
- Front Controller 역할을 하는 Servlet
- 제일 앞에서 HTTP Request를 처리하는 Controller
- 모든 사용자의 요청을 받아들인다.
- web.xml 파일에 해당 내용이 명시되어 있다.
ModelAndView
- Controller에 의한 반환된 Model과 View가 Wrapping된 객체
ViewResolver
- ModelAndView 객체를 처리해 View를 그림
- .jsp 파일을 알아서 /WEB-INF/views/.jsp와 같은 형태로 변환해줌
servlet-context.xml
에 지정되어 있음(suffix, prefix)
Controller(POJO)
- HTTP Request를 처리해 Model를 만들고 View를 지정
- 보통 class로 되어 있음
(POJO는 자바에서 객체를 의미한다.)
다음은 Handler Mapping, Handler Servlet, View Resolver에 대해 알아본다.
Handler Mapping
해당되는 Controller를 찾아줌
@RequestMapping
으로 찾아줌
@Controller
라는 Annotation으로 명시 되어 있어야 함.
servlet-context.xml 에 정의되어 있음
<context:conponent-scan base-package="com.hwang.spring">
Handler Adapter
Controller를 연결해서 실행해주는 역할
파란색은 Spring Framwork 를 의미함.(수정 X)
보라색은 개발자가 수정할 수 있는 부분(수정 O)
초록색은 필요 유무에 따라 작성해도 되고 작성하지 않아도 된다.
Spring MVC는 웹 어플리케이션을 유연하고 확장 가능하게 만든다.