-
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반응형'Spring' 카테고리의 다른 글
Maven 이란? (0) 2021.01.11 [Spring Security] 스프링시큐리티의 기본 개념과 구조 (1) 2020.12.01 Spring에 커넥션풀(Connection Pool) 등록 - HikariCP (1) 2020.10.24 [Spring] 스프링 어노테이션 종류 (1) 2020.10.17 MyBatis란? (0) 2020.09.28