Spring MVC的原理分析

1.客户端向服务端发送一个请求(URL),首先出来处理的组件是SpringMV中的前端控制器(DispatcherServlet:主要负责接收请求和将请求Request传递给其他相应的组件)

         1.1  DispatcherServlet又是怎样处理的呢?Dispatcher的核心组件是HandMapping,这个核心组件的核心处理类RequestMappingHandMapping会找出Spring容器中所有的被@Controller注解修饰的类以及@RequestMapping注解标识的类和方法,遍历所有的HandMapping集合

             1.2   DispatherServlet 会找到对应的HandlerMapping,并得到HandExecutionChain,这个HandlerExecutionChan包括一系列的过滤器和拦截器,HandInteceptor拦截调用preHandle方法,

       1.3使用HandExecutionChain中的Hander遍历HandlerAdapter集合,找到支持Handler的HandlerAdapter(这个HandlerAdapter的核心实现类是RequestMappingHandlerAdapter,RequestMappingHandlerAdapter有两个核心的功能,第一个功能是解析方法的参数(HandlerMethoderArgumentResolver,它的实现类之一RequestParamMethodArgumentResolver(处理@RequestParam注释注解的参数)),第二个是处理方法的返回值,HandlerMethoderReturnValue,他的实现类:ModelAndViewMethodReturnValueHandle(处理返回值类型为ModelAndView类型的方法))

               1.4.使用HandlerAdapter拿到ModelAndView

                1.5  前面四个步骤都可能出现异常,如果出现异常会交给HandlerExceptionResolver策略处理

               1.6.根据ModelAndView使用viewResolver进行解析 

               1.7.viewResolver进行解析得到view

               1.8.得到json,jsp,xml又经过一系列的HandlerInteceptor拦截,调用afterCompletion方法,完成请求的响应

             

 

    原文作者:Spring MVC
    原文地址: https://blog.csdn.net/qq_36975405/article/details/81872509
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞