Model
View
Controller
어플리케이션의 확장을 위해 Model, View, Controller 세가지 영역으로 분리
컴포넌트의 변경이 다른 컴포넌트에 영향을 미치지 않음(유지보수 용이)
컴포넌트 간의 결합성이 낮아 프로그램 수정이 용이(확장성이 뛰어남)
장점
단점
Model2 (Web MVC) 요청 흐름
web.xml - DispatcherServlet 설정
DispatcherServlet을 여러 개 설정 가능
각 DispatcherServlet마다 각각의 ApplicationContext 생성
web.xml - 최상위 Root ContextLoader 설정
리스너 설정이 되면 /WEB-INF/spring/root-context.xml 파일을 읽어서 공통적으로 사용되는 최상위 Context를 생성.
그 외의 다른 컨텍스트 파일들을 최상위 어플리케이션 컨텍스트를 로드하기 위해서는...//
Application Context 분리
Controller Class
Context 설정파일에 Controller 등록 (servlet-context.xml)
Controller와 response page 연결을 위한 ViewResolver 설정
@Controller와 @RequestMapping 선언
method 단위의 mapping이 가능
DefaultAnnotationHandlerMapping과 AnnotationHandlerAdapter를 사용함
Controller Class는 Client의 요청을 처리
@Controller 선언
Controller Class 자동 스캔
@RequestMapping 선언
@RequestBody parameter type
Servlet API 사용
Controller Class에서 method의 return type 종류
Controller에서는 처리 결과를 보여줄 View 이름이나 객체를 리턴하고, DispatcherServlet은 View이름이나 View 객체를 이용하여 view를 생성
ViewResolver : 논리적 view와 실제 JSP파일 mapping
View 이름 명시적 지정
View 자동 지정
redirect view
View에 전달하는 데이터
Map, Model, ModelMap을 통한 설정
ModelAndView를 통한 Model 설정
@ModelAttribute annotation을 이용한 model data 처리
전체 경로와 Servlet기반 경로 매칭
Servlet기반 경로 매칭
@PathVariable annotation을 이용한 URI 템플릿
Ant 스타일의 URI패턴 지원