SpringMVC的处理器适配器-HandlerAdapter的用法

本文深入探讨了Spring MVC中HandlerAdapter的使用场景,包括SimpleControllerHandlerAdapter、SimpleServletHandlerAdapter和HttpRequestHandlerAdapter的配置与应用实例,特别关注RequestMappingHandlerAdapter在方法级映射中的角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如题,今天看spring源码解析这本书时,看到了这个地方,对于不同HandlerAdapter的使用场景有的困惑,主要还是没见过,因为大多数面向的Controller类型的HandlerAdapter;

HandlerAdapter目前最常见的主要为:

1、 SimpleControllerHandlerAdapter、HttpRequestHandlerAdapter 、AnnotationMethodHandlerAdapter (已过时),这三个是默认的;如果没有指明新的适配器时,会从这三个中间选择;
2、 SimpleServletHandlerAdapter目前很少用到,也不是默认的适配器;
3、 RequestMappingHandlerAdapter这个应该是目前springMVC主要采用的,针对方法级的映射匹配处理。

由HandlerAdapter的实现类可知:映射匹配的处理器handler包括三个类型Controller、HttpRequestHandler、Servlet,但后两个的应用场景与使用方式我却没有见到过,经过一番查找,特做一个总结以供以后参考:

1、SimpleControllerHandlerAdapter主要是针对实现Controller接口的handler进行适配,配置方式在书中可见;
2、SimpleServletHandlerAdapter主要是针对实现Servlet接口的handler进行适配,配置方式跟普通的Controller类似,如下所示:

spring配置文件中bean的配置如下:
/** 采用BeanNameUrlHandlerMapping类进行路径映射匹配**/
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
 <bean name="/demo.do" class="com.demo.DemoServlet"/>  
 对应的Bean实现类为
public class DemoServlet extends HttpServlet{  
.......
}

3、HttpRequestHandlerAdapter 主要是针对实现HttpRequestHandler接口的handler进行适配;
HTTP请求处理器适配器仅仅支持对HTTP请求处理器的适配。它简单的将HTTP请求对象和响应对象传递给HTTP请求处理器的实现,它并不需要返回值。它主要应用在基于HTTP的远程调用的实现上。

配置应该与上述相同,从SpringMvc自带的实现类来说,主要用于转发或者静态资源的加载,对应的实现类为DefaultServletHttpRequestHandler和ResourceHttpRequestHandler

参考文章为:
《Spring源码深度解析》
https://hanqunfeng.iteye.com/blog/605174
http://www.cnblogs.com/tengyunhao/p/7658952.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值