Spring MVC는 어떻게 동작할까?
25 Apr 2019 | MVCMVC는 뭘까?
- Model , View, Controller를 분리한 디자인 패턴
- Model
- 애플리케이션의 데이터를 나타낸다.
- Java Beans
- View
- 실제 화면, 보여줄 데이터
- Controller
- 뷰와 모델 사이의 인터페이스 역활
- Model
스프링 MVC는 어떻게 동작할까?
- Dispatcher Servlet이 클라이언트로부터 요청을 받는다.
- Handler Mapping이 요청된 URL 정보에 따라서 호출해야할 Controller 메소드의 정보를 얻는다.
- DispatcherServlet이 HandlerAdapter 객체를 가져온다.
- HandlerAdapter 객체의 메소드를 실행한다.
- Controller 객체는 비즈니스 로직을 처리하고, 그 결과를 바탕으로 뷰(ex. JSP)에 전달할 객체를 Model 객체에 저장한다. DispatcherServlet에게 view name을 리턴한다.
- DispatcherServlet은 view name을 View Resolver에게 전달하여 View 객체를 얻는다.
- DispatcherServlet은 View 객체에 화면 표시를 의뢰한다.
- 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