SpringMVC - handlerAdapter

2016-02-21  本文已影响284人  李天火
SpringMVC.JPG
1、功能
 在HandlerMapping返回处理请求的Controller实例后,需要一个帮助定位具体请求方法的处理类,这个类就是HandlerAdapter,HandlerAdapter是处理器适配器,Spring MVC通过HandlerAdapter来实际调用处理函数。
  • Spring MVC自动注册的AnnotationMethodHandlerAdpater,HandlerAdapter定义了如何处理请求的策略

DispatcherServlet中根据HandlerMapping找到对应的handler method后,首先检查当前工程中注册的所有可用的handlerAdapter,根据handlerAdapter中的supports方法找到可以使用的handlerAdapter。
 通过调用handlerAdapter中的handler方法来处理及准备handler method的参数及annotation(这就是spring mvc如何将request中的参数变成handle method中的输入参数的地方),最终调用实际的handler method。

2、源码

public abstract interface HandlerAdapter
{
  public abstract boolean supports(Object paramObject);
  
  public abstract ModelAndView handle(HttpServletRequest paramHttpServletRequest, HttpServletResponse paramHttpServletResponse, Object paramObject)
    throws Exception;
  
  public abstract long getLastModified(HttpServletRequest paramHttpServletRequest, Object paramObject);
}

该接口定义了三个方法:

  1. supports方法的作用是判断处理适配器是不是支持该Handler。
  2. handle方法,调用对应的Handler中适配到的方法,并返回一个ModelView。
  3. getLastModified方法不确定干嘛用的。
上一篇 下一篇

猜你喜欢

热点阅读