Spring MVC Request Lifecycle의 구조
Filter
Web Application의 전역적인 로직을 담당한다.
전체적인 필터링(설정)을 하는 곳
대표적으로 Encoding이 있다.
DispatcherServlet
Request에 대해 어느 컨트롤러로 매핑시킬 것인지 배치하는 역할을 한다.
들어오는 모든 Request를 우선적으로 받아 처리해주는 서블릿
HandlerMapping에게 Request에 대해 매핑할 Controller검색을 요청한다.
HandlerMapping으로부터 적절한 Controller정보를 반환받아 해당 Controller와 매핑시킨다.
HandlerMapping
DispatcherServlet으로부터 검색을 요청받은 Controller를 찾아 정보를 리턴해준다.
HandlerInterceptor
Request가 Controller에 매핑되기 전 앞단에서 부가적인 로직을 끼워 넣는다.
Controller
Request와 매핑되는 곳
Request에 대해 어떤 로직(service)으로 처리할 것인지를 결정하고, 그에 맞는 service를 호출한다.
Service Bean을 스프링 컨테이너로부터 주입받아야한다.
Service
데이터 처리 및 가공을 위한 비즈니스 로직을 수행한다.
Repository를 통해 DB에 접근하여 데이터의 CRUD(Create, Read, Update, Delete)를 처리한다.
Repository
DB에 접근하는 객체
DAO(Data Acceess Object)라고 부른다.
ViewResolver
Controller에서 리턴한 View의 이름을 DispatcherServlet으로부터 넘겨받고, 해당 View를 렌더링한다.
렌더링한 View는 DispatcherServlet으로 리턴하고, DispatcherServlet에서는 해당 View화면을 Response한다.
참고
https://velog.io/@damiano1027/Spring-Spring-MVC-Request-Lifecycle
'Study > Spring boot' 카테고리의 다른 글
[Spring boot] Snake_case to camelCase (0) | 2022.03.22 |
---|---|
[Spring boot] 의존성 주입(DI) 복습 (0) | 2022.02.23 |
[Spring boot] @RequestParam과 @PathVariable (0) | 2022.01.28 |
[Spring boot] Lombok(롬복) (0) | 2022.01.26 |
[Spring] 스프링과 스프링부트 , 빈(Bean) (0) | 2021.12.24 |