DispatcherServlet이란?
- Spring Framework의 핵심 구성 요소로 Front Controller 패턴을 구현한 클래스
- 이를 통해 Spring MVC 애플리케이션의 모든 HTTP 요청이 중앙에서 처리
DispatcherServlet의 장점
- 중앙 집중화
- 모든 요청 처리를 한 곳에서 관리하므로 유지보수와 확장성이 높음
- 유연성
- 다양한 핸들러 매핑, 인터셉터, 뷰 리졸버를 설정하여 유연하게 동작 가능
- 다양한 기능 제공
- 요청/응답 처리 뿐 아니라 필터링, 예외 처리, 국제화, 데이터 바인딩 등을 제공
DispatcherServlet의 동작 과정
- 클라이언트의 모든 요청을 DispatcherServlet이 수신
- 요청 정보에 대해 HandlerMappinng에 위임하여 처리할 Handler(Controller)를 찾음
- HandlerMapping에서 찾은 Handler를 수행할 수 있는 HandlerAdapter를 찾음
- HandlerAdapter는 Controller에 비즈니스 로직 처리를 호출
- Controller는 비즈니스 로직을 수행하고 처리 결과를 Model에 저장하며, HandlerAdapter에 view name을 반환
- 모델을 반환하면 View가 렌더링이 되고, 그렇지 않은 경우(ex. @RestController 등) View가 렌더링이 되지 않음
- 반환 받은 view name을 ViewResolver에게 전달하고, ViewResolver는 해당하는 View 객체를 반환
- DispatcherServlet은 View에게 Model을 전달하고 화면 표시 요청
- 최종적으로 서버의 응답을 클라이언트에게 반환
참고 자료
https://zzang9ha.tistory.com/441
'Language > Spring' 카테고리의 다른 글
[JPA] 엔티티 관계의 로딩 전략 - 즉시 로딩 / 지연 로딩 (1) | 2024.11.18 |
---|---|
[Spring] Controller와 Rest Controller 차이 (0) | 2024.11.17 |
[공통처리] Filter, Interceptor, AOP 차이점 및 흐름과 역할 (0) | 2024.11.15 |
[AOP] AOP란? (1) | 2024.11.14 |
[Entity] 엔티티와 영속성 컨텍스트 (1) | 2024.11.09 |