2016년 2월 26일 금요일

Spring MVC Architecture

MVC패턴(Model - View - Controller)

  • 아키텍처 패턴의 일종
  • 사용자인터페이스로 부터 비즈니스로직을 분리하여 애플리케이션의 시각적인 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향없이 쉽게 고칠 수 있다
  • Model : 모델의 상태에 변화가 있을때 컨트롤러와 뷰에 통보한다
  • View : 사용자가 볼 결과물을 생성하기 위해 모델로부터 정보를 얻어온다
  • Controller : 모델에 명령을 보냄으로써 모델의 상태를 변경한다


Spring MVC Architecture

Spring MVC는 기본요소인 Model, View, Controller 외에도 특징을 가지고 있다
  • DispatcherServlet, HandlerMapping, Controller, Intercepter, ViewResolver 등 각 컴포넌트의 역할이 명확하게 구분되어 있다
  • HandlerMapping, Controller, View 등 컴포넌트들에 다양한 인터페이스 및 구현 클래스를 제공하여 경우에 따라 선택하여 사용할 수 있다
  • Controller(@MVC)나 폼 클래스(커맨드 클래스) 작성시 특정 클래스를 상속받거나 참조할 필요없이 POJO Style의 클래스를 작성함으로써 비즈니스 로직에 집중한 코드를 작성할 수 있다
  • 웹 요청 파라미터와 커맨드 클래스간에 데이터 매핑 기능을 제공한다
  • 데이터 검증을 할 수 있는, Validator와 Error처리 기능을 제공한다
  • JSP Form을 쉽게 구성하도록 Tag를 제공한다


Spring MVC의 핵심 Component

DispatcherServlet
Spring MVC Framework의 Front Controller, 웹요청과 응답의 Life Cycle을 주관한다
HandlerMapping
웹요청시 해당 URL을 어떤 Controller가 처리할지 결정한다
Controller
비즈니스 로직을 수행하고 결과 데이터를 ModelAndView에 반영한다
ModelAndView
Controller가 수행결과를 반영하는 Model 데이터 객체와 View 객체로 이루어져있다
View Resolver
어떤 View를 선택할지 결정한다
View
결과데이터인 Model 객체를 Display한다

Spring MVC 흐름
출처: http://m.blog.naver.com/soes19/220230381234

0 개의 댓글

댓글 쓰기