看透SpringMVC-源码分析与实践 - 9大组件 - HandlerAdapter
2016-11-19 00:00
477 查看
承上
映射器HandlerMapping是通过request找到Handler,而适配器HandlerAdapter则是实际使用Handler处理请求的适配器HandlerAdapter只有5个直接实现
AbstractHandlerMethodAdapter,此系列两层,有子类RequestMappingHandlerAdapter
HttpRequestHandlerAdapter
SimpleControllerHandlerAdapter
AnnotationMethodHandlerAdapter - 弃用
SimpleServletHandlerAdapter
回顾HandlerAdapter接口,共有三个方法:
// 是否支持传入的Handler boolean supports(Object handler); // 使用Handler处理请求 ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception; // 获取资源的Last-Modified long getLastModified(HttpServletRequest request, Object handler);
HandlerAdapter的实现中,RequestMappingHandlerAdapter非常复杂,因为要处理的请求太灵活,Handler可以是任意的方法,没有任何约束,其中最**关键是参数的解析映射**
先说简单的:
HttpRequestHandlerAdapter:适配HttpRequestHandler
SimpleControllerHandlerAdapter:适配Controller
SimpleServletHandlerAdapter:适配Servlet
//org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { ((HttpRequestHandler) handler).handleRequest(request, response); return null; } //org.springframework.web.servlet.handler.SimpleServletHandlerAdapter public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { ((Servlet) handler).service(request, response); return null; } // org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return ((Controller) handler).handleRequest(request, response); }
相关文章推荐
- SpringMVC源码分析和一些常用最佳实践
- 看透 Spring MVC 源代码分析与实践 —— Spring MVC 组件分析
- SpringMVC源码分析(4)剖析DispatcherServlet重要组件 推荐
- SpringMVC源码分析(7)剖析HandlerAdapter
- SpringMVC4.x源码分析(四):一个request请求的完整流程和各组件介绍
- 《看透springMvc源代码分析与实践》笔记1网站架构演变
- SpringMVC源码分析和一些常用最佳实践
- 2016书单总结--看透SpringMvc源代码分析与实践-概述
- <看透SpringMVC源码分析>---第六章 Servlet
- 教你如何在SpringMVC项目中单独使用Feign组件(含源码分析)
- 《看透springMvc源代码分析与实践》笔记2常见协议和标准
- 【转】SpringMVC源码分析和一些常用最佳实践
- SpringMVC源码分析(5)剖析重要组件HandlerMapping 推荐
- 看透SpringMVC源代码分析与实践 Markdown记录
- SpringMVC源码分析 之 HandlerMapping和HandlerAdapter
- springMVC学习笔记之源码分析
- Spring3.0核心组件的源码简单分析
- Mangos源码分析(11):服务器公共组件实现之状态机
- Cloud Foundry中Stager组件的源码分析
- Cloud Foundry中collector组件的源码分析