SpringMVC执行过程(debug)

SpringMVC执行过程(debug),为截图全部的debug源码,只对关键的执行步骤进行粘贴,doDispatch的整个过程中肯定不止我展示出来的这些步骤
对开发有帮助的应该是对拦截器的执行以及ResponseBodyAdvice(自定义响应结果)的合理使用

一、DispatcherServlet.doDispatch()
springMVC完成接口的响应代码基本是在该方法中完成

下方为该方法的官方说明

Process the actual dispatching to the handler. The handler will be
obtained by applying the servlet’s HandlerMappings in order. The
HandlerAdapter will be obtained by querying the servlet’s installed
HandlerAdapters to find the first that supports the handler class. All
HTTP methods are handled by this method. It’s up to HandlerAdapters or
handlers themselves to decide which methods are acceptable.

二、源码debug,直接将断点打到DispatcherServlet.doDispatch()
1.获取handlerMapping

mappedHandler = getHandler(processedRequest);

2.获取handlerAdapter

HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());

3.执行拦截器前置处理器

if (!mappedHandler.applyPreHandle(processedRequest, response)) {
   
					return;
}

4.调用接口并响应数据,返回视图ModelAndView(该方法中的执行步骤很多,可以跟进去)

// Actually invoke the handler.
mv = ha.handle(processedRequest, response
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值