Overview
Spring MVC는 handler Mappings, view, locale, 테마 , 파일 업로드를
핸들러에 요청하는 DispatchServlet으로 디자인 되어 있다. 기본적인 핸들러는
ModelAndView, handleRequest(request,response)메소드를 제공하는
Controller 인터페이스 이다. 이 자체로도 application 컨트롤러로 사용될 수 있지만
AbstractController, AbstractCommandController,
MultiActionController등의 컨트롤러 인터페이스를 포함한다. 또한 Struts에서는
Action, ActionForm과 같은 클래스를 이용해 입력 폼 데이터를 전달 하지만 Spring MVC는
이러한 객체를 도메인 객체로 바로 바인딩 할 수 있어 일일이 입력받은 객체의 값을 business 객체로
매핑해 주지 않아도 된다. view resolution 또한 매우 유연하다.컨트롤러를 구현할 때 view
이름과 model Map으로 구성되어 있는 인스턴스를 가지는 ModelAndView() 메소드를 구현함으로써
view 이름과 view에서 사용할 객체를 넘겨줄 수 있다. 또한 이러한 view 이름은 설정 파일에
정의되어 있는 다양한 view Resolver를 사용하여 알맞은 view를 결정해서 보여준다.
Spring MVC 특징
Spring MVC 웹 프레임워크는 다음과 같은 특징을 가진다.
-
역할 분리가 명확하다. controller, validator, command 객체,
폼 객체, model 객체, DispatcherServlet, handler
mapping, view resolver 등 특화된 객체에 의해 역할을 수행할 수 있다.
-
폼 웹 컨트롤러에서 business 객체나 validator까지 각각의 context에
쉽게 참조할 수 있는 Java Beans으로 등록하여 사용할 수 있다.
-
다양한 컨트롤러 인터페이스를 제공하기 때문에 시나리오에 맞는 컨트롤러를 선택하여 사용할
수 있다.
- business 객체를 command 또는 폼 객체로 재사용할 수 있다.
-
application 레벨에서 데이터를 바인딩 하고 validation 에러를 체크할
수 있다.
-
간단한 URL 기반 설정으로 다양한 handler mapping과 view
resolution이 가능하다.
-
모델이 name-value 형태의 맵으로 구성되기 때문에 여러 view 기술과의 연계가
쉽다.
- 데이터 바인딩이나 테마 사용을 위한 spring 태그를 제공한다.
- JSP의 폼태그를 보다 쉽게 만들 수 있는 form 태그를 제공한다.
Reference
Spring MVC 웹 프레임워크 활용을 위한 설정 및 구성요소에 관한 내용은 아래를 참고한다.