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方法,完成请求的响应

             

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值