7.2 Tomcat 的生命周期管理

7.2.1 Lifecycle 接口

Tomcat通过org.apache.catalina.Lifecycle 接口来统一管理生命周期,所有有生命周期的组件都要实现 Lifecycle 接口。

  • 定义了十三个 String 类型常量,用于 LifecycleEvent 时间的 type 属性中,作用是区分组件发出的 LifecycleEvent 事件时的状态。
  • 定义了三个监听器方法,用来添加、查找和删除 LifecycleListener 类型的监听器。
  • 定义了4个生命周期的方法:init、start、stop 和 destroy
  • 定义获取当前状态的方法 getState 和 getStateName,用来获取当前的状态。

7.2.2 LifecycleBase

Lifecycle的默认实现是 org.apache.catalina.LifecycleBase,所有的有生命周期的组件都直接或间接的继承自 LifecycleBase,LifecycleBase 为 Lifecycle 里的方法提供了默认实现:

  • 监听器管理是专门使用了 LifecycleSupport 类完成,实现监听器的增删查。
  • 生命周期方法中设置了相应的状态并调用了相应的模板方法:initInternal、startInternal、stopInternal 和 destroyInternal 方法。这四个方法由具体子类实现,对于子类来说执行生命周期的方法就是这四个方法。

推荐阅读更多精彩内容