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大致启动就完毕了

 

posted @ 2018-03-30 16:23  lion_eagle  阅读(1103)  评论(0编辑  收藏  举报