Special Bean Types

  • HandlerExceptionResolver:解析异常并可能将其映射到处理程序或错误视图。

  • ViewResolver:将逻辑视图名称解析为实际视图以进行呈现。

  • LocaleResolver:确定客户所在的语言区域和时区。

  • ThemeResolver:确定应用程序使用的主题。

  • MultipartResolver:解析多部分请求,例如表单文件上传。

  • FlashMapManager:存储和检索用于在请求之间传递属性的 FlashMap。

DispatcherServlet 委托给特殊 Bean 来处理请求并呈现适当的响应。“特殊 Bean”是指实现框架契约的由 Spring 管理的 Object 实例。这些通常带有内置契约,但您可以自定义它们的属性并扩展或替换它们。

下表列出了 DispatcherServlet 检测到的特殊 Bean:

Bean type Explanation

HandlerMapping

将请求映射到处理程序以及 interceptors列表进行预处理和后处理。映射基于一些条件,具体细节因 HandlerMapping`实现而异。两个主要的 `HandlerMapping 实现是 RequestMappingHandlerMapping(支持 @RequestMapping 注释的方法)和 SimpleUrlHandlerMapping(对处理程序维护 URI 路径模式的明确注册)。

HandlerAdapter

帮助 DispatcherServlet 调用映射到请求的处理程序,而不管如何实际调用该处理程序。例如,调用带注释的控制器需要解析注释。HandlerAdapter 的主要目的是保护 DispatcherServlet 免受此类详细信息的影响。

HandlerExceptionResolver

解决异常的策略,可能将它们映射到处理程序、HTML 错误视图或其他目标。参见 Exceptions

ViewResolver

将处理程序返回的逻辑 String-基于视图名称解析成实际 View,用来渲染响应。参见 View ResolutionView Technologies

LocaleResolver, LocaleContextResolver

解析客户端使用的 Locale,可能还有他们的时区,以便提供国际化视图。参见 Locale

ThemeResolver

解析您的 Web 应用程序可以使用主题 — 例如,提供个性化布局。参见 Themes

MultipartResolver

使用一些多部分解析库来分析多部分请求(例如,浏览器的表单文件上传)的抽象。参见 Multipart Resolver

FlashMapManager

存储和检索 “input`"和 "`output” FlashMap,这些 `FlashMap`可以用来将属性从一个请求传递到另一个请求,通常是通过重定向。参见 Flash Attributes