HandlerMapping的工作就是为每个请求找到合适的请求找到一个处理器handler,其实现机制简单来说就是维持了一个url到Controller关系的Map结构,其提供的实际功能也是根据request请求来获取具体执行的包含Controller信息的HandlerAdapter。
HandlerMapping接口及实现类如下:
HandlerMapping%20接口:接口中主要定义了一个getHandler方法,返回一个HandlerExecutionChain对象sPRingMVC源码分析--拦截器HandlerExecutionChain(三)
AbstractHandlerMapping%20抽象类:
(1)实现了接口的getHandler方法(2)定义了getHandlerInternal方法,返回HandlerMethod(3)定义了getHandlerExecutionChain方法,返回HandlerExecutionChain通过上图我们可以看到接下来是两个抽象类及其子类AbstractHandlerMethodMapping和AbstractUrlHandlerMapping一、AbstractHandlerMethodMapping系列是将具体的Method作为Handler来使用的,也是我们用的最多的,比如经常使用的@RequestMapping所注释的方法就是这种Handler,这种Handler是HandlerMethod二、AbstractUrlHandlerMapping是通过url来进行匹配的,大致原理就是将url与对应的Handler保存在一个map中。接下来我们会用多篇博客对整个HandlerMapping的实现类进行介绍。在DispatcherServlet的doDispatch方法中实现如下:[java] view%20plain copy print?新闻热点
疑难解答