特殊的 Bean 类型

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

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

Bean 类型 说明

HandlerMapping

将请求映射到一个 handler,并附带一个用于前处理和后处理的拦截器列表。映射基于一些标准,其细节因 HandlerMapping 实现而异。

两个主要的 HandlerMapping 实现是 RequestMappingHandlerMapping(支持带有 @RequestMapping 注解的方法)和 SimpleUrlHandlerMapping(维护 URI 路径模式到 handler 的显式注册)。

HandlerAdapter

帮助 DispatcherServlet 调用映射到请求的 handler,无论 handler 实际是如何调用的。例如,调用注解控制器需要解析注解。HandlerAdapter 的主要目的是隔离 DispatcherServlet 与这些细节。

HandlerExceptionResolver

解析异常的策略,可能将它们映射到 handler、HTML 错误视图或其他目标。参见异常

ViewResolver

将 handler 返回的基于逻辑 String 的视图名称解析为实际的 View,以便渲染响应。参见视图解析视图技术

LocaleResolver, LocaleContextResolver

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

ThemeResolver

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

MultipartResolver

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

FlashMapManager

存储和检索“输入”和“输出” FlashMap,它们可用于在请求之间传递属性,通常是在重定向时。参见Flash Attributes