Server
全类名:org.apache.catalina.core.StandardServer;
由类依赖图可知,Server是一个生命周期的类,实现了Lifecycle,生命周期对应的枚举类LifecycleState。
public enum LifecycleState {
// 创建
NEW(false, null),
// 初始化
INITIALIZING(false, Lifecycle.BEFORE_INIT_EVENT),
// 初始化完成
INITIALIZED(false, Lifecycle.AFTER_INIT_EVENT),
// 启动之前
STARTING_PREP(false, Lifecycle.BEFORE_START_EVENT),
// 启动中
STARTING(true, Lifecycle.START_EVENT),
// 启动完成
STARTED(true, Lifecycle.AFTER_START_EVENT),
// 停止之前
STOPPING_PREP(true, Lifecycle.BEFORE_STOP_EVENT),
// 停止中
STOPPING(false, Lifecycle.STOP_EVENT),
// 停止完成
STOPPED(false, Lifecycle.AFTER_STOP_EVENT),
// 摧毁之前
DESTROYING(false, Lifecycle.BEFORE_DESTROY_EVENT),
// 摧毁完成
DESTROYED(false, Lifecycle.AFTER_DESTROY_EVENT),
// 失败
FAILED(false, null);
}
一个生命周期的类,在生命周期内会执行对应的生命周期事件。
server的init方法主要执行
service.init();
server的start方法主要执行
service.start();
Service
Service:org.apache.catalina.core.StandardService;
Service也是一个生命周期的类。一个Server可以有多个Service,但一般只会配置一个。
service的init方法主要执行
engine.init();
mapperListener.init();
connector.init();
service的start方法主要执行
engine.start();
mapperListener.start();
connector.start();
另外,service里面还会调用executor.init() 和executor.start(),目前tomcat推荐的配置都是注销的,看源码的时候可以忽略这个初始化和启动。