Spring Web MVC는 Spring에서 제공하는 웹 프레임워크로, Servlet API를 기반으로 구축되었다.
정식 명칭은 Spring Web MVC지만, Spring MVC로 많이들 부른다.
이는 DI(의존성 주입), AOP(관점 지향 프로그래밍)과 더불어 WEB 개발을 위한 기능을 제공한다.
DispatcherServlet(FrontController)를 중심으로 디자인 되었고, View Resolver, Handler Mapping, Controller와 같은
객체와 함께 요청을 처리하도록 구성되어 있다.
DispatcherServlet은 Spring MVC Framework의 Front Controller로, 웹 요청과 응답의 Life Cycle을 주관한다.
HandlerMapping은 요청을 어떤 Controller가 처리할 지 결정하고,
Controller는 요청에 따라 수행할 메서드를 선언하고, 요청처리를 위한 로직을 수행한다.(비즈니스 로직을 호출한다.)
수행한 결과 데이터를 ModelAndView에 반영한다.
ModelAndView는 Controller가 수행 결과를 반영하는 Model 데이터 객체와
이동할 페이지 정보(또는 View 객체)로 이루어져있다.
ViewResolver는 Controller에 선언된 View 이름을 기반으로 결과를 반환할 View를 결정한다.
VIew는 응답화면을 생성한다.
Spring MVC의 요청 처리 흐름은 다음과 같다.
- 클라이언트의 요청이 들어오면 DispatcherServlet이 가장 먼저 요청을 받는다.
- HandlerMapping이 어떤 Controller가 요청을 처리할지 결정한다.
- 이를 DispatcherServlet이 Controller에 전달한다.
- Controller는 비즈니스 로직을 수행하고 결과 데이터를 ModelAndView에 반영하여 반환한다.
- ViewResolver에 의해 실제 결과를 처리할 View를 결정하고 반환한다.
- 결과를 처리할 View에 ModelAndView를 전달한다.
- DispatcherServlet은 View가 만들어 낸 결과를 응답한다.
egovframework:rte2:ptl:spring_mvc_architecture [eGovFrame]
'프레임워크 > Spring' 카테고리의 다른 글
Spring Interceptor (0) | 2023.04.21 |
---|---|
MVC(Model, View, Controller) (0) | 2023.04.20 |
Spring applicationContext class path resuource 에러 (0) | 2023.04.13 |
Spring AOP Proxy (0) | 2023.04.12 |
Spring AOP(Aspect Oriented Programming) (2) | 2023.04.12 |