idea中web应用(springboot)启动后,frams中一大串栈帧都是什么意思?

本文探讨了当SpringBoot的Web应用启动后,IDEA中看到的Frams栈帧的含义。从一个简单的Controller出发,通过debug模式观察请求处理过程。首先,请求由Tomcat的acceptor线程接收并放入事件队列,由poller线程进一步处理,最后由executor线程池中的http-nio-8080-exec-1线程处理。接着,请求经过Tomcat的责任链模式,通过过滤器Filter,进入Servlet。SpringMVC的DispatchServlet处理请求,包括doGet方法,以及一系列如处理器映射器、处理器适配器和参数解析器等步骤,最终达到预期的控制器方法。
摘要由CSDN通过智能技术生成

记录springboot的web应用启动后,frams栈帧中的调用都是干嘛的。大概得有三四十个。
写个最简单controller,sout hello ,debug,前台发一个请求,然后可以看到
在这里插入图片描述
简要整理下黄色区域这些栈帧都是干嘛的(简略的写一下,很多源码印象模糊了,也没重新看,大体上没问题,细微处可能有错误)。

总结起来就是:
1: 请求到达端口,由tomcat的acceptor线程收到,加到事件队列中,相当于转给poller线程处理,poller再转给executor线程池处理,也就是图中http-nio–8080-exec-1线程;
2. 通过tomcat责任链走到filter,走完filterChain,来到servlet
3. springmvc的DispatchServlet继承了Httpservlet(多层继承),执行doGet,接着就是mvc框架中的内容,处理器映射器mapping-》处理器适配器-》参数解析器等等,最终来到我们的请求。

图片正着贴,调用顺序要倒着看。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

更加具体的,可以点到每个栈帧内部看源码。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值