DispatcherServlet源码分析

       首先,我们知道DispatcherServlet是前端控制器,是用来处理请求的,同时他也是一个Servlet,在初始化时,也是做了相关工作的。在Servlet调用init(),方法方法是,会回调DispatcherServlet的onRefresh方法,做相关初始化工作,比如:初始化本地化解析器,Handler映射器,Handler适配器等,为后面处理请求时,做准备工作。Servlet在接收请求时,首先调用service方法,然后回调DispatcherServlet的doDispatch方法,做如下图处理:

DispatcherServlet源码分析


这里主要有2个接口:

HandlerMapping接口:

其实现类:BeanNameUrlHandlerMapping  ControllerBeanNameHandlerMapping   ControllerClassNameHandlerMapping    RequestMappingHandlerMapping  SimpleUrlHandlerMapping,其中RequestMappingHandlerMapping就是我们常用的。


HandlerAdapter接口:

其实现类:HttpRequestHandlerAdapter    RequestMappingHandlerAdapter    SimpleControllerHandlerAdapter   SimpleServletHandlerAdapter,其中HttpRequestHandlerAdapter就是我们常用的。