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

如题,今天看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实现类为
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

你可能感兴趣的:(spring)