Tomcat源码分析之Server和Service

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推荐的配置都是注销的,看源码的时候可以忽略这个初始化和启动。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值