跳到主要内容

特殊 Bean 类型

ChatGPT-4o-mini 中英对照 Special Bean Types

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

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

Bean 类型说明
HandlerMapping将请求映射到处理程序,并附带用于预处理和后处理的 拦截器 列表。映射基于某些标准,具体细节因 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存储和检索可以用于在一个请求与另一个请求之间传递属性的“输入”和“输出” FlashMap,通常是在重定向中使用。请参见 Flash Attributes