特殊 Bean 类型

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

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

Bean 类型 说明

HandlerMapping

将请求映射到处理程序,以及用于预处理和后处理的 拦截器 列表。 映射基于某些标准,具体细节因 HandlerMapping 实现而异。

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

HandlerAdapter

帮助 DispatcherServlet 调用映射到请求的处理程序,无论处理程序实际上是如何调用的。 例如,调用带注解的控制器需要解析注解。 HandlerAdapter 的主要目的是屏蔽 DispatcherServlet 免受此类细节的影响。

HandlerExceptionResolver

用于解析异常的策略,可能将异常映射到处理程序、HTML 错误视图或其他目标。 请参见 异常

ViewResolver

将处理程序返回的基于逻辑 String 的视图名称解析为实际的 View,以便将其渲染到响应中。 请参见 视图解析视图技术

LocaleResolverLocaleContextResolver

解析客户端使用的 Locale 以及他们可能使用的时区,以便能够提供国际化的视图。 请参见 区域设置

ThemeResolver

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

MultipartResolver

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

FlashMapManager

存储和检索“输入”和“输出”FlashMap,它们可用于将属性从一个请求传递到另一个请求,通常跨重定向。 请参见 Flash 属性