当前位置 博文首页 > 龚厂长的博客:SpringMVC-详解HandlerMapping的前世今生之诞生
本文基于spring 5.5.2.release
springmvc接收到请求后,第一步要做的事情就是查找Handler,以确定是否可以处理该请求,Handler可以简单的理解为Controller。这个查找的过程是由HandlerMapping完成的。
HandlerMapping是一个接口,实现类必须实现如下方法:
//该方法的返回值HandlerExecutionChain是对Handler的封装,它内部还封装了拦截器
//在执行Handler之前和之后,都会调用拦截器
HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception;
springmvc提供了多种不同的HandlerMapping实现类,每个实现类都可以根据请求参数查找对应的Handler。这些实现类实例化对象后都放到DispatcherServlet的属性handlerMappings中,以供后续遍历时查找访问。那这些对象是如何放到属性handlerMappings中的?