Tomcat也是Java程序,因此startup.sh脚本会启动一个JVM运行Tomcat的启动类Bootstrap
Bootstrap主要负责初始化Tomcat的类加载器,并创建Catalina
Catalina...,并且ContainerBase还实现了子容器的“增删改查”,甚至连子组件的启动和停止都提供了默认实现,比如ContainerBase会用专门的线程池来启动子容器。...组件, 动态扩容数组来添加组件
启动一个 socket Listen停止端口, Catalina 启动时, 调用 Server await 方法, 其创建 socket Listen 8005 端口,...组件的成员变量
还包含 MapperListener 成员变量, 以支持热部署, 其Listen容器变化, 并更新 Mapper, 是观察者模式
需注意各组件启动顺序, 根据其依赖关系确定
先启动 Engine...Engine 从 Request 取出 Host 子容器, 并调用其 pipeline 的第一个 valve