Tomcat 启动分析-容器启动
上一篇讲完了容器的初始化,下面会讲容器的启动
1、入口依然是Catalina的start方法中,会调用StandardServer的start方法

2、StandardServer调用StandardService的start方法

3、StandardService的start方法主要是调用Engie和Connetor的start方法

其中Connector会调用Protocal的start方法,Protocal会调用endpoint的start方法,endpoint会启动一个线程池,用来处理请求;
4、而engine的start方法会调用父类ContainerBase的start方法, ContainerBase会启动子容器StandardHost,和启动pipeline


5、host和engine都是继承了ContainerBase,启动的调用方式类似
host 如何去启动context的呢
首先host会调用HostConfg去解析所有的context,那么先来看看HostConfig 如何注入到host中的
在初始化Host的时候会注入HostConfig
HostConfig作为一个监听器注入到host中后,会在host启动的时候触发start事件


这会触发HostConfig的start方法

HostConfig会部署各个应用
我们就使用deployWARS来看看是如何启动context的

最终都会创建一个context
6、StandardContext的start方法会启动很多线程,最主要的它会调用我们的application的listener
首先我们看一下StandardContext是如何初始化的,
a、

下面就是调用各个应用的监听器

tomcat大致启动就完毕了
浙公网安备 33010602011771号