Special Bean Types
2025. 2. 27. 23:07ㆍSpring Framework/Web on Servlet Stack
DispatcherServlet
은 특수 빈(Special Beans)을 위임받아 요청을 처리하고 적절한 응답을 렌더링합니다.
여기서 "특수 빈"이란 Spring 프레임워크에서 관리되는 객체(Managed Object) 중 특정 프레임워크 계약(Framework Contract)을 구현하는 빈을 의미합니다.
이러한 빈은 기본적으로 내장된 계약(Contract)을 따르지만, 속성을 조정하거나 확장 및 교체할 수도 있습니다.
📌 DispatcherServlet이 감지하는 특수 빈 목록
빈 유형 | 설명 |
---|---|
HandlerMapping | 요청을 핸들러에 매핑하며, 전처리(pre-processing) 및 후처리(post-processing)를 위한 인터셉터 목록을 포함합니다. 매핑 방식은 HandlerMapping 구현체에 따라 다릅니다. 🔹 주요 구현체: - RequestMappingHandlerMapping : @RequestMapping 이 붙은 메서드를 매핑- SimpleUrlHandlerMapping : 특정 URI 경로 패턴을 명시적으로 핸들러에 매핑 |
HandlerAdapter | DispatcherServlet 이 매핑된 핸들러를 실행하도록 도와줍니다. 요청을 처리하는 방식은 핸들러에 따라 다를 수 있기 때문에, HandlerAdapter 는 DispatcherServlet 이 이러한 세부 사항을 몰라도 되도록 추상화합니다. (예: @RequestMapping 이 붙은 컨트롤러 실행 시 어노테이션을 해석하는 과정 포함) |
HandlerExceptionResolver | 예외를 해결하는 전략을 정의합니다. 예외를 특정 핸들러에 매핑하거나, HTML 오류 페이지를 반환하거나, 다른 응답을 생성할 수 있습니다. 자세한 내용은 [예외 처리(Exceptions)] 참고 |
ViewResolver | 컨트롤러가 반환한 논리적인 뷰 이름(String)을 실제 View 객체로 변환하여 응답을 렌더링합니다. 자세한 내용은 [뷰 리졸루션(View Resolution) 및 뷰 기술(View Technologies)] 참고 |
LocaleResolver, LocaleContextResolver |
클라이언트가 사용하는 로케일(Locale) 및 타임존을 해석하여, 국제화(i18n)된 뷰를 제공할 수 있도록 합니다. 자세한 내용은 [로케일(Locale)] 참고 |
ThemeResolver | 웹 애플리케이션에서 테마(Theme)를 해석하여, 개인화된 레이아웃을 제공할 수 있도록 합니다. 자세한 내용은 [테마(Themes)] 참고 |
MultipartResolver | 멀티파트 요청(예: 브라우저에서 파일 업로드)을 분석하는 추상화 계층을 제공합니다. 멀티파트 요청을 처리하는 라이브러리를 활용하여 요청을 해석할 수 있습니다. 자세한 내용은 [멀티파트 리졸버(Multipart Resolver)] 참고 |
FlashMapManager | FlashMap 을 저장하고 검색하는 역할을 합니다. FlashMap 은 리다이렉트 시 요청 간 데이터를 전달하는 데 사용됩니다. (예: redirect:/success 로 이동할 때, success 메시지를 전달할 수 있음) 자세한 내용은 [Flash Attributes] 참고 |
🚀Summary
DispatcherServlet
은 요청을 처리하는 과정에서 특수 빈(Special Beans)을 활용하여 다양한 기능을 제공합니다.- 주요 역할을 하는 빈으로는
HandlerMapping
,HandlerAdapter
,ViewResolver
,LocaleResolver
,ThemeResolver
등이 있습니다. MultipartResolver
는 파일 업로드를,FlashMapManager
는 요청 간 데이터 전달을 돕습니다.- 이러한 빈들은 기본적으로 Spring이 제공하지만, 사용자가 속성을 변경하거나 직접 구현하여 대체할 수도 있습니다.
➡ 즉, DispatcherServlet
은 다양한 특수 빈과 협력하여 요청을 유연하고 확장성 있게 처리할 수 있도록 합니다.
출처 : https://docs.spring.io/spring-framework/reference/web/webmvc/mvc-servlet/special-bean-types.html
'Spring Framework > Web on Servlet Stack' 카테고리의 다른 글
Servlet Config (0) | 2025.02.27 |
---|---|
Web MVC Config (0) | 2025.02.27 |
Context Hierarchy (0) | 2025.02.27 |
Dispatcher Servlet (0) | 2025.02.27 |
Spring Web MVC (0) | 2024.10.15 |