Special Bean Types

2025. 2. 27. 23:07Spring 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이 매핑된 핸들러를 실행하도록 도와줍니다. 요청을 처리하는 방식은 핸들러에 따라 다를 수 있기 때문에, HandlerAdapterDispatcherServlet이 이러한 세부 사항을 몰라도 되도록 추상화합니다.
(예: @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