您当前的位置: 首页 >  spring

SpringMVC源码解析AbstractHandlerMethodAdapter

发布时间:2020-06-03 16:12:57 ,浏览量:0

AbstractHandlerMethodAdapter是HandlerAdapter接口的简单抽象类,实现了接口定义的方法,同时增加了执行顺序Order。

public abstract class AbstractHandlerMethodAdapter extends WebContentGenerator implements HandlerAdapter, Ordered { private int order = Ordered.LOWEST_PRECEDENCE; public AbstractHandlerMethodAdapter() { // no restriction of HTTP methods by default  super(false); } @Override public final boolean supports(Object handler) { return (handler instanceof HandlerMethod && supportsInternal((HandlerMethod) handler)); } protected abstract boolean supportsInternal(HandlerMethod handlerMethod); 
API handle

重写HandlerAdapter的handle方法,此实现需要的处理器是一个HandlerMethod

handleInternal
  • 使用给定的处理方法来处理请求。 // (1)备好处理器所需要的参数 // (2)使用处理器处理请求 // (3)处理返回值,将不同类型的返回值统一处理成ModelAndView
PARAMS:

请求 - 当前的HTTP请求 响应 - 当前HTTP响应 handlerMethod - 处理方法使用。 这个对象必须已经传递到supportsInternal(HandlerMethod)接口,这样肯定没有返回true 。

返回

与视图的名称和所需的模型数据,或ModelAndView对象null如果请求已经被直接处理

抛出:

Exception -在错误的情况

@Override public final long getLastModified(HttpServletRequest request, Object handler) { return getLastModifiedInternal(request, (HandlerMethod) handler); } //提供order功能 public void setOrder(int order) { this.order = order; } @Override public int getOrder() { return this.order; } protected abstract long getLastModifiedInternal(HttpServletRequest request, HandlerMethod handlerMethod); } 

handleInternal由唯一子类RequestMappingHandlerAdapter实现。

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    115984博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0586s