
Lifecycle⽣命周期接⼝继承体系示意
一. Tomcat启动流程
(一)追踪过程
1. 入口
2. 追踪方式
tomcat的启动分两个步骤,首先是逐级初始化,然后是逐级start。
(1) 逐级初始化
先找到Bootstrap类的main方法入口,找到bootstrap.init();这里主要是对catalina类进行实例化
然后在main方法中找到 daemon.load(args),这里daemon就是Bootstrap的实例化对象
然后在Bootstrap类的load方法中,通过反射执行catalina的load方法
在catalina的load方法内,再创建并执行Server的init方法,以此逐级创建并执行各组件的init方法
(2) 逐级start
首先先找到Bootstrap类的main方法入口,然后在main方法中找到 daemon.start(),这里daemon就是Bootstrap的实例化对象.
然后在daemon.start()方法里再执行catalina类的start方法,以此类推。
(二)启动流程图示
二. Tomcat请求处理流程
(一)请求处理流程分析
(二) 请求处理流程示意图
(三) 追踪过程(按顺序看截图)
(三) 调用栈顺序
(四) Mapper组件体系结构