Tomcat结构简介
结构简图
概述
Tomcat中组件大致分为两个部分,一部分为用来处理请求(Server、Service、Connctor等),另一部分来定义内部的结构(Engine、Host、Context等)。
上图中Lifecycle以及Container框住的部分,都是自身的子接口。下文中的关键属性主要指的是与结构相关的属性。
说明
Catalina
全类名
org.apache.catalina.startup.Catalina
意义
此类一般用于与外部命令交互,提供Tomcat程序整体的启停操作。
关键属性
server(org.apache.catalina.Server)[1]:Catalina通过此属性与Tomcat服务器交互。
关键方法
load():解析Tomcat的server.xml并根据配置内容实例化各个部分对象,最终解析出一个Server接口实现类的实例。
start()/stop():启动/停止Tomcat。
Lifecycle
全类名
org.apache.catalina.Lifecycle
默认实现类
org.apache.catalina.util.LifecycleBase
意义
Tomcat中大多数组件都间接的实现了此接口,此接口用于统一控制各个级别组件的声明周期,并提供了生命周期事件监听器。
上图中Lifecycle框内的类都是间接实现此接口的接口、类。
Tomcat中生命周期图可以查阅org.apache.catalina.Lifecycle接口的注释,这里需要补充的是这种结构充分利用了状态模式。
关键方法
addLifecycleListener():添加生命周期监