特殊豆类类型
DispatcherServlet 会委托给特殊的 Bean 来处理请求并渲染相应的响应。这里的“特殊 Bean”指的是由 Spring 管理的、实现了框架契约的 Object 实例。这些 Bean 通常自带内置的契约,但你可以自定义它们的属性,也可以扩展或替换它们。
下表列出了由DispatcherServlet检测到的特殊bean:
| Bean 类型 | 说明 |
|---|---|
HandlerMapping | 将请求映射到一个处理程序,并附带一系列拦截器用于预处理和后处理。这种映射基于某些标准,具体细节因HandlerMapping的实现而异。两种主要的 HandlerMapping实现是RequestMappingHandlerMapping(支持带有@RequestMapping注解的方法)和SimpleUrlHandlerMapping(维护URI路径模式与处理程序之间的显式注册)。 |
HandlerAdapter | 帮助DispatcherServlet调用与请求映射的处理程序,而无需关注处理程序的实际调用方式。例如,调用带有注解的控制器需要解析这些注解。HandlerAdapter的主要作用就是让DispatcherServlet免于处理这些细节。 |
| HandlerExceptionResolver | 用于解决异常的策略,可能会将异常映射到相应的处理程序、HTML错误视图或其他目标。详见Exceptions。 |
| ViewResolver | 将处理程序返回的基于String的逻辑视图名称解析为实际的View,以便将其呈现在响应中。详见[View Resolution](view Resolver.md)和View Technologies。 |
| LocaleResolver, LocaleContextResolver | 解析客户端使用的Locale(可能还包括他们的时区),以便提供国际化视图。详见Locale。 |
| MultipartResolver | 用于解析多部分请求(例如,浏览器表单文件上传)的抽象层,借助某些多部分解析库来实现。详见Multipart Resolver。 |
| FlashMapManager | 用于存储和检索“输入”及“输出”的FlashMap,这些FlashMap可以在请求之间传递属性,通常是在重定向过程中使用。详见Flash Attributes。 |