一、流程简述
在Tomcat的bin目录下存放着Tomcat在Windows环境下和Linux环境下的启动脚本
在start脚本文件中会去启动catalina的脚本文件
catalina脚本文件中会去调用启动类(org.apache.catalina.startup.Bootstrap)来进行Tomcat的初始化
启动的流程图如下
二、启动流程
Init 阶段
1、Bootstrap init()
利用反射机制初始化Catalina
2、Bootstrap init() -> Catalina load()
创建完Catalina对象并完成赋值后会开始初始化各个组件,这里先调用load
进入方法后设置的是load,然后通过反射去执行Catalina类的load()方法
3、Catalina 创建各个组件
这个地方会去生成server.xml文件的解析工具,来创建相关的组件(没有修改过server.xml的则是tomcat的默认配置)
里面会配置创建各个组件的规则、方法、类名
解析完成后读取文件
开始各个组件的创建
4、Catalina -> Server init()
创建完成后开始执行初始化的链路
因为Catalina内部组件都依靠Lifecycle接口来管理各组件的生命周期,所以我们主要看这个方法(这里放一张大致的接口管理类图)