본문 바로가기

Java/Spring

스프링 MVC의 주요 구성 요소 및 처리 흐름

스프링 프레임워크는 DI나 AOP와 같은 기능뿐만 아니라 기본적으로 웹 개발을 위한 MVC 프레임워크도 함께 제공하고 있다.

스프링MVC는 스프링을 기반으로 하고 있기 때문에 스프링에서 제공하는 기능을등을 손쉽게 사용할 수있다는 장점을 갖는다.또 다른 종류의 프레임워크와 연동하는 수고를 하지 않아도 되는것도 장점중 하나다.


* 스프링 MVC의 주요 구성 요소

  • DispatcherServlet
          클라이언트의 요청을 전달 받는다. 컨트롤러에게 클라이언트의 요청을 전달하고 컨트롤러가 리턴한 결과 값
          View에 전달하여 알맞은 응답을 생성하도록 한다.

  • HandlerMapping
          클라이언트의 요청 URL을 어떤 컨트롤러가 처리할지를 결정한다.


  • Controller
          클라이언트의 요청을 처리한 뒤, 그 결과를 DispatcherServlet에 알려준다. 스트럿츠의 Action과 동일한 역할
          을 수행한다.


  • ModelAndView
          컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담는다.


  • ViewResolver
          컨트롤러의 처리 결과를 생성할 뷰를 결정한다.


  • View
          컨트롤러의 처리 결과 화면을 생성한다.


* 스프링 MVC의 처리 흐름

  1. 클라이언트의 요청이 DispatcherServlet에 전달된다.
  2. DispatcherServletHandlerMapping을 사용하여 클라이언트의 요청을 처리할 Controller객체를 구한다.
  3. DispatcherServlet은 컨트롤러 객체의 handleRequest() 메서드를 호출하여 클라이언트의 요청을 처리한다.
  4. Controller의 handleRequest()메서드는 처리 결과 정보를 담은 ModelAndView 객체를 리턴한다.
  5. DispatcherServlet은 ViewResolver로부터 응답 결과를 생성할 View 객체를 구한다.
  6. View는 클라이언트에 전송할 응답을 생성한다.
이 과정에서 개발자가 직접 개발해야 할 부분은 클라이언트의 요청을 처리할 컨트롤러와 클라이언트에 응답 결과 화면을 전송할 JSP나Velocity 템플릿 등의 뷰 코드이다.나머지 DispatcherServlet이나 HandlerMapping, ViewResolver등은 스프링이 기본적으로 제공하는 구현 클래스를 사용하게 된다.

 

* 스프링 MVC를 이용하여 웹 어플리케이션을 개발하는 과정

  1. 클라이언트의 쵸청을 받을 DispatcherServlet 을 web.xml 파일에 설정한다.
  2. HandlerMapping을 이용하여 요청 URL과 컨트롤러의 매핑 방식을 설정한다.
  3. 클라이언트의 요청을 처리할 Controller를 작성한다.
  4. 어떤 View를 이용하여 컨트롤러의 처리 결과 응답 화면을 생성할지를 결정하는 ViewResolver를 설정한다.
  5. JSP나 Velocity등을 이용하여 View 영역의 코드를 작성한다.