前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringMVC源码解析AbstractHandlerMethodAdapter

SpringMVC源码解析AbstractHandlerMethodAdapter

作者头像
JavaEdge
发布2021-02-22 14:34:02
2470
发布2021-02-22 14:34:02
举报
文章被收录于专栏:JavaEdgeJavaEdge

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

代码语言:javascript
复制
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 -在错误的情况

代码语言:javascript
复制
    @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实现。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • API
    • handle
      • handleInternal
        • PARAMS:
        • 返回
        • 抛出:
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档