Java2EE Framework/Spring 2.0

스프링2.0 MVC 프레임워크의 동작 방법

본클라쓰 2010. 6. 5. 09:02

 스프링 MVC의 핵심은 DispatcherServlet 클래스이다. 이 클래스가 요청URL과 매핑시켜 흐름을 처리하는 컨트롤러 클래스이다. DispatcherServlet 클래스는 최전방의 컨트롤러로 사용자로부터 요청이 들어왔을 때 수행하는 흐름은 다음과 같다.

 

DispatcherServlet → Handler Mapping → Controller → ViewResovler → view

 

 

■ Spring MVC 의 핵심 Component

  • DispatcherServlet : 스프링 MVC 프레임워크의 최전방 컨트롤러로 요청과 응답의 Life Cycle을 주관한다.
  • HandlerMapping : 웹 요청시 해당 URL을 어떤 컨트롤러가 처리할지 결정한다.
  • Controller : 비즈니스 로직을 수행하고 결과 데이터를 Model and View 에 반영한다.
  • Model and View : 컨트롤러가 수행 결과를 반영하는 모델 데이터 개게와 이동할 페이지 정보로 이루어져 있다.
  • ViewResolver : 어떤 View를 선택할지 결정
  • View : 결과 데이터인 모델 객체를 Display 한다.

 

 사용자로부터 요청이 들어오면 DispatcherServlet이 가장 먼저 요청을 받는다. 요청을 받으면 HandlerMapping을 통해 요청에 해당하는 Controller를 return 한다. 즉, 요청URL 값에 해당하는 컨트롤러를 구별해주는 것이 HandlerMapping 이다. 컨트롤러가 구별되었으면 해당 컨트롤러로 요청을 전달하고 컨트롤러는 비즈니스 로직을 수행하고 결과 데이터는 Model and View에 반영하여 반환한다. 그리고 요청에 해당하는 뷰를 ViewResolver를 통해 최종 뷰를 선택하고 View 페이지를 호출하는 방식으로 구성되어 있다.

 

 

요청과 컨트롤러를 연결해주는 HandlerMapping

 

 핸들러매핑은 BeanNameUrlHandlerMapping과 SimpleUrlHandlerMapping이 있다. BeanNameUrlHandlerMapping은 빈 태그의 name 속성에 해당하는 URL을 수행하는 컨트롤러를 등록하는 방법이고, SimpleUrlHandlerMapping은 이런 URL 값과 컨트롤러를 집단적으로 매핑시키는 HandlerMapping이다.