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 方法。這四個方法由具體子類實現,對于子類來說執行生命周期的方法就是這四個方法。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容