Spring MVC는 어떻게 동작할까?

|

MVC는 뭘까?

  • Model , View, Controller를 분리한 디자인 패턴
    • Model
      • 애플리케이션의 데이터를 나타낸다.
      • Java Beans
    • View
      • 실제 화면, 보여줄 데이터
    • Controller
      • 뷰와 모델 사이의 인터페이스 역활

스프링 MVC는 어떻게 동작할까?

image

  1. Dispatcher Servlet이 클라이언트로부터 요청을 받는다.
  2. Handler Mapping이 요청된 URL 정보에 따라서 호출해야할 Controller 메소드의 정보를 얻는다.
  3. DispatcherServlet이 HandlerAdapter 객체를 가져온다.
  4. HandlerAdapter 객체의 메소드를 실행한다.
  5. Controller 객체는 비즈니스 로직을 처리하고, 그 결과를 바탕으로 뷰(ex. JSP)에 전달할 객체를 Model 객체에 저장한다. DispatcherServlet에게 view name을 리턴한다.
  6. DispatcherServlet은 view name을 View Resolver에게 전달하여 View 객체를 얻는다.
  7. DispatcherServlet은 View 객체에 화면 표시를 의뢰한다.
  8. View 객체는 해당하는 뷰를 호출하며, 뷰는 Model 객체에서 화면 표시에 필요한 객체를 가져와 화면 표시를 처리한다.

Spring MVC 의 구성역활

구성요소 역할
Dispatcher Servlet 모든 Http 요청을 받아서 다른 객체들 사이의 흐름을 제어함, 요청을 Handler Mapping으로 넘긴다.
Handler Mapping 클라이언트의 요청을 바탕으로, 어떤 Controller를 실행할지 결정한다.
Model Controller에서 view로 넘겨줄 객체가 저장되는 공간, key-value구조로 이루어져있다.
ViewResolver Controller가 반환한 View Name(the logical names)에 prefix, suffix를 적용하여 View Object(the physical view files)를 반환한다.
Service 비즈니스 로직을 실행한다
Controller 클라이언트의 요청에 맞는 처리를 실행한다 ( 레이어 구조의 경우 레이어 계층에 따라서 실행 )
  • 출처
    • https://gmlwjd9405.github.io/2018/12/20/spring-mvc-framework.html
    • https://jess-m.tistory.com/15

Comments