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