SpringMVC源码解析AbstractHandlerMethodAdapter
【摘要】 AbstractHandlerMethodAdapter是HandlerAdapter接口的简单抽象类,实现了接口定义的方法,同时增加了执行顺序Order。
public abstract class AbstractHandlerMethodAdapter extends WebContentGenerator implements HandlerAdapter,...
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);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
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); }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
handleInternal由唯一子类RequestMappingHandlerAdapter实现。
文章来源: javaedge.blog.csdn.net,作者:JavaEdge.,版权归原作者所有,如需转载,请联系作者。
原文链接:javaedge.blog.csdn.net/article/details/106525869
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者

评论(0)