本文共 1370 字,大约阅读时间需要 4 分钟。
我们先试下跟踪Servlet
:
trace javax.servlet.Servlet *
从trace的结果可以看出来,请求最终是被DispatcherServlet#doDispatch()
处理了,但是没有办法知道是哪个Controller
处理。
`---[27.453122ms] org.springframework.web.servlet.DispatcherServlet:doDispatch() +---[0.005822ms] org.springframework.web.context.request.async.WebAsyncUtils:getAsyncManager() #929 +---[0.107365ms] org.springframework.web.servlet.DispatcherServlet:checkMultipart() #936 | `---[0.062451ms] org.springframework.web.servlet.DispatcherServlet:checkMultipart() | `---[0.016924ms] org.springframework.web.multipart.MultipartResolver:isMultipart() #1093 +---[2.103935ms] org.springframework.web.servlet.DispatcherServlet:getHandler() #940 | `---[2.036042ms] org.springframework.web.servlet.DispatcherServlet:getHandler()
trace结果里把调用的行号打印出来了,我们可以直接在IDE里查看代码(也可以用jad命令反编译)
watch org.springframework.web.servlet.DispatcherServlet getHandler returnObj
ts=2020-09-27 20:07:01; [cost=11.719144ms] result=@HandlerExecutionChain[ logger=@Slf4jLocationAwareLog[org.apache.commons.logging.LogAdapter$Slf4jLocationAwareLog@63eeba5b], handler=@HandlerMethod[com.kq.ctrl.SalePeriodController#list(DtoProductPlanListSearch)], interceptors=null, interceptorList=@ArrayList[isEmpty=false;size=2], interceptorIndex=@Integer[-1],]
可以看到处理请求的handler是 com.kq.ctrl.SalePeriodController.list
转载地址:http://sqxwb.baihongyu.com/