DispatcherServlet的工作原理。

1、先根据请求的路径找到HandlerMapping。

2、返回对应的HandlerExecutionChain对象,这里面包含了(controller和拦截器)。

3、然后再找HandlerAdapter,用来适配调用haner方法。

4、通过HandlerAdapter对象hander方法调用,进行处理得到ModelAndView对象,HandlerMethod内部handle的时候,使用各种HandlerMethodArgumentResolver实现类处理HandlerMethod的参数,使用HandlerMethodReturnValueHandler实现类处理返回值。

5、在调用hander方法前后会执行拦截器的方法。

6、最终返回值被处理成ModelAndView对象。

7、这期间发生的异常会被HandlerExceptionResolver接口实现类进行处理。

如下图,比较详细的描述了整个扭转过程。

DispatcherServlet的工作原理。