Tomcat8源码分析启动流程start方法

编程

上一篇:Tomcat8源码分析-启动流程-load方法

前面讲了启动流程中的Catalina.load,进一步调用绝大部分组建的init操作,主要完成对server.xml解析,并根据解析的结果结合设置的Rule(规则)构造了最初的StandardServer对象,比如Server-Service-Engine层次结构,添加默认的监听等;还有对Tomcat-user.xml的解析与操作,启动HTTP/AJP 两种监听(此时不可用)。

时序图

init操作完成,紧接着就是start了,耐心看看以下时序图,时间不够主要看调用的套路,特别是LifecycleBase的startstartInternalsetStatesetStateInternal和ContainerBase中的startInternal,还有StandardService/Host/Context 与HostConfig/ContextConfig对象的内容

过程很长,如果时间比较充足建议根据图示,跟着源码看。

说明

大体流程说明

Server启动所有的Service,Service启动唯一的Engine和所有的MapperListener与Connector,Engine启动所有的Host(通常我们见到的webapps),Host启动它所有的Context(这里面就包含了对context.xml的解析,解析web.xml完成应用的部署)

核心点与关键类说明

循环部署应用

这里只描述概要,详情见:Tomcat8源码分析-启动流程-循环部署应用(待完成)

Servlet封装与启动

这里只描述概要,详情见:Tomcat8源码分析-启动流程-Servlet封装与启动(待完成)

Filter封装与启动

这里只描述概要,详情见:Tomcat8源码分析-启动流程-Filter封装与启动(待完成)

Listener封装与启动

这里只描述概要,详情见:Tomcat8源码分析-启动流程-Listener封装与启动(待完成)

扩展:Tomcat8源码分析-context.xml详解(待完成)

以上是 Tomcat8源码分析启动流程start方法 的全部内容, 来源链接: utcz.com/z/511602.html

回到顶部