ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring MVC 패턴
    Spring 2020. 10. 25. 17:06

    1. Spring MVC란?

    Model-View-Controller의 약자이다.

     

    • Model: 어플리케이션 계층의 정보, 데이터 의미
    • View: 화면 출력 로직을 담당
    • Controller: Model과 View의 연결하는 제어 로직을 담당

    2.Spring MVC 처리 순서

     

     

    DispatcherServlet


    •  Spring Framework가 제공하는 Servlet 클래스
    •  Spring MVC의 핵심 구성 요소
    •  사용자의 Request 을 관리
    •  Dispatcher가 받은 Request 을 HandlerMapping에게 위임
    • Spring 에서는 front controller는 DispatcherServlet 이라고 하고 Controller는 handler 라고 말함

     

     

    HandlerMapping


    •  requestUR과 Controller 클래스의 맵핑을 관리 (@RequestMapping)
    • HandlerMapping 인스턴스의 정보로 맵핑된 Controller에게 위임

     

     

    Controller


    • 요청에 맵핑 된 Controller 위임됨 (@Controller)
    • @RequestMapping 을 통하여 요청을 처리할 메서드에 호출
    • 필요한 비즈니스 로직을 호출
      • 해당 요청을 처리할 Service를 주입(DI)받아 Service에게 위임 ( @Service )
      • Service에서는 비즈니스 로직을 구현
      • connection pool를 담당하는 DAO가 주입(DI)받아 대신 DB에 접근한다. ( @Repository )
      • 결과 데이터를 다시 Controller에 전달
    • View에 전달 할 결과 데이터(Model)와 이동할 화면(View) 정보를 스프링 MVC가 제공하는  ModelAndView 인스턴스에 담아 DispatcherServlet에 반환 된다.
    • DispatherServlet는 ViewResolver에게 뷰 논리정보(View Name)를 전달

     

    ModelAndView


    • Controller에서 처리 결과를 View에 전달 할 결과 데이터(Model)와 이동할 화면(View) 정보를 담는 클래스
    • Controller 메서드에서 리턴 타입이 String 이여도 핸들러에서 ModelAndView 인스턴스에 View 정보를 넣는다.

     

    ViewResolver


    • ViewResolver는 View Name을 이용해 알 맞는 view객체를 찾는다.
    • View에 model을 rendering하여 View 인스턴스를 다시 DispatcherServlet에 보냄
    • DispathcerServlet은 최종 결과를 클라이언트에 응답

     

    View


    • 결과 데이터인 Model 객체를 보여한다.

     

     

    출처:linked2ev.github.io/spring/2019/08/12/Spring-1-%EC%8A%A4%ED%94%84%EB%A7%81-MVC-%EC%9D%B4%EB%9E%80/

    •  
    728x90
    반응형

    댓글

Designed by Tistory.