Spring MVC 执行流程解析

  • Spring MVC 的具体执行流程

1.SpringMVC 的 处理器映射器,即HandlerMapping

 

       1.1) 获取HandlerExecutionChain对象的流程分析

 

 

2、SpringMVC的处理器适配器,根据1找到的处理器找到合适的适配器

适配器支持的种类有4类:

         2.1) RequestMappingHandlerAdapter<----------->org.springframework.web.method.HandlerMethod 

         2.2)HttpRequestHandlerAdapter<----------->org.springframework.web.HttpRequestHandler

         2.3)SimpleControllerHandlerAdapter<----------->org.springframework.web.servlet.mvc.Controller

         2.4)SimpleServletHandlerAdapter<----------->javax.servlet.Servlet

3.执行处理器执行链路中所有拦截器的preHandler方法

        拦截器的类型是实现 org.springframework.web.servlet.HandlerInterceptor接口的所有的类

       如果不满足某个了拦截器类的前置方法,则执行所有拦截器的afterCompletion后置方法

4. 根据前面找到的适配器执行对应的方法

        执行自己定义Controller的业务方法,返回org.springframework.web.servlet.ModelAndView结果

5.给ModelAndView设置 视图名称,用于匹配视图解析器

6.执行处理器执行链路中所有拦截器的postHandler方法

7.处理适配器返回的ModelAndView结果

     7.1) 如果有异常,则处理异常

     7.2) 根据ModelAndView的找到合适的视图解析器

     7.3) 渲染视图

     7.4) 返回结果到Web端

8.执行处理器执行链路中所有拦截器的afterCompletion方法

9.补充说明:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值