Bootstrap
运行Tomcat启动类BootStrap
启动类主要作用,通过反射实例化org.apache.catalina.startup.Catalina对象
通过反射执行Catalina.load和start方法,如下图

Catalina
load
load方法,主要创建Digester用来解析server.xml文件,并初始化server对象,执行server的init方法
继续跟踪server.init方法发现,会按照StandardServer -> StandardService -> StandardExcutor-> Engine -> Host -> Context -> Connector 顺序,分别执行对应的init方法
每个容器都在初始化自身相关设置的同时,将子容器初始化。
StandardServer是如何初始化StandardService?
1.创建Digester的时候会通过addService配置Service,最终填充StandardServer里的services[]数组里
2.StandardServer.initInternal方法里,最后调用 services[i].init()初始化StandardService

start
start方法,主要调用getServer().start(),由load流程可知,此start方法,调用的为LifecycleBase
的start方法,最终调用的抽象方法startInternal,此方法同抽象方法initInternal相同,都是由各个插
件自己实现的,按照tandardServer -> StandardService -> StandardExcutor-> Engine -> Host -> Context -> Connector 顺序执行startf方法
LifecycleBase
初始化、start、销毁等动作,都是定义在LifecycleBase中,然后由各个组件自己去实现

总结
