-
Spring Web MVC의 구성요소Spring 2021. 5. 3. 18:22
Spring MVC는 Model2 Architecture와 Front-Controller 패턴을 프레임워크 차원에서 제공하고 있다.
이는 기존 JSP/Servlet의 MVC 패턴에서 Model - View - Controller로 분할되었던 역할을 더 나누어 기존의 패턴과 약간의 차이가 있다.
스프링 프레임워크의 구성 요소들이 어떤 역할을 하는 지에 대해 알아보려고 한다.
Spring MVC의 역할은 위의 그림과 같이 나눠지고, Spring Framework에 의해 추가되는 요소들은 Dispatcher Servlet(Front Servlet), HandlerMapping, ViewResolver이다.
Controller와 View의 역할 자체는 이전과 같으나 이전에 Controller가 URI를 처리하고 보여줄 View를 선택했던 부분을 세분화한 것이 Spring MVC이다.
각각의 요소에 대한 설명은 Spring MVC의 실행 순서를 설명하는 것으로 대신한다.
1️⃣ Client가 Dispatcher Servlet에게 Request를 전달한다
2️⃣ Dispatcher Servlet은 어떤 Controller에게 해당 Request의 처리를 맡길지 Handler Mapping에게 URI 처리를 문의한다
3️⃣ Handler Mapping은 해당 URI를 처리할 수 있는 Controller를 반환한다
4️⃣ Dispatcher Servlet은 Request를 Controller에게 전달한다
5️⃣ 해당 Controller는 Request를 처리할 수 있는 메소드를 이용해 처리한 뒤 수행 결과를 담은 ModelAndView 객체를 반환한다
- Model: Business Logic 수행 후 얻어낸 DTO
- View: Response할 View Name
6️⃣ Dispatcher Servlet은 View Name을 ViewResolver에게 전달한다
7️⃣ ViewResolver는 해당 View를 처리할 수 있는 실제 path 및 확장자 정보를 담아 Response한다
8️⃣ Dispatcher Servlet은 View에게 Client에게 Response하도록 실제 View Path와 함께 Request를 전달한다
9️⃣ View는 실행 결과를 Client에게 Response하며 화면을 표현한다
'Spring' 카테고리의 다른 글
Spring에서는 DI를 통해 IoC를 구현한다 (416) 2021.10.16 Spring AOP(Aspect-Oriented Programming)의 이해 (407) 2021.10.03 @(Annotation)을 이용한 Spring Container Configuration (449) 2021.10.02 Filter와 Interceptor의 차이 (415) 2021.09.30 Spring Framework MVC 설정 파일(.xml) (0) 2021.05.05