SpringMVC中的九大组件

HandlerMapping

将请求映射到处理程序以及用于预处理和后处理的拦截器列表,其细节因HandlerMapping不同实现而异。

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

HandlerAdapter

帮助DispatcherServlet调用映射到请求的处理程序,而不管该处理程序实际是如何调用的。例如,调用带注释的控制器需要解析注释。

HandlerAdapter的主要目的是保护DispatcherServlet不受这些细节的影响。

HandlerExceptionResolver

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

ViewResolver

将从处理程序返回的基于逻辑字符串的视图名称解析为要呈现响应的实际视图。

LocalResolver

解析客户端使用的语言环境和时区,以便能够提供国际化视图。

ThemeResolver

解决Web应用程序可能使用的主题,例如,提供个性化的布局。

MultipartResolver

解析多媒体请求。

FlashMapManager

存储和检索“输入”和“输出”FlashMap,可用于从一个请求传递属性到另一请求,通常用于重定向。但存在的缺点是只能解决第一个重定向,而不能解决再次重定向。例如从重定向到B网站,如果再从B网址重定向到C网址,那么数据将会丢失。

它们在何时被实例化?

在DispatcherServlet的initStrategies方法中被实例化以及初始化。如何走到这一步请查看我的另一篇博文 DispatcherServlet和Spring应用上下文初始化详解

// DispatcherServlet#initStrategies
protected void initStrategies(ApplicationContext context) {
	initMultipartResolver(context);
	initLocaleResolver(context);
	initThemeResolver(context);
	initHandlerMappings(context);
	initHandlerAdapters(context);
	initHandlerExceptionResolvers(context);
	initRequestToViewNameTranslator(context);
	initViewResolvers(context);
	initFlashMapManager(context);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值