springmvc的handlermapping的关键点

handlermapping主要功能是为请求找到合适的handler和interceptors,并组合成HandlerExecutionChain。查找handler的过程通过getHandlerInternal方法实现,每个子类都其不同的实现。

所有的HandlerMapping的实现都继承于AbstarctHandlerMapping,AbstarctHandlerMapping主要作用是完成拦截器的初始化工作。而通过AbstarctHandlerMapping又衍生出两个系列,AbstractUrlHandlerMapping和AbstractHandlerMethodMapping。

AbstractUrlHandlerMapping也有很多子类的实现,如SimpleUrlHandlerMapping、AbstractDetectingUrlHandlerMapping。总体来说,AbstractUrlHandlerMapping需要用到一个保存url和handler的对应关系的map,map的初始化工作由子类实现。不同的子类会有自己的策略,可以在配置文件中注册,也可以在spring容器中找。

AbstractHandlerMethodMapping系列则通常用于注解的方法,解析包含@Controller或者@RequestMapping注解的类,建立url和method的直接对应关系,这也是目前使用最多的一种方式。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容