Catalina 由多个组件构成 ,在Catalina 启动的时候,这些组件也会启动。当Catalina 停止的时候,这些组件也要被清除。
比如,容器组件停止的时候,必须唤醒所有加载servlet 的destory 方法。
保持组件启动和停止一致的机制通过实现org.apache.catalina.LifeCycle 接口实现。
LifeCycle 接口主要是触发以下事件:
- BEFORE_START_EVENT
- START_EVENT
- AFTER_START_EVENT
- BEFORE_STOP_EVENT
- STOP_EVENT
- AFTER_STOP_EVENT
另外,一个组件可以触发事件,那么必须存在相应的监听器来对触发的事件做出回应。
监听器使用 org.apache.catalina.LifecycleListener 接口来实现
这一章的核心主要就是:Lifecycle, LifecycleEvent, LifecycleListener
此外还有一个LifecycleSupport :这个接口提供了一个简单方式来触发生命周期事件和处理事件监听器。
Lifecycle 接口
catalina 中,允许一个组件包含其他组件。一个父组件负责启动和停止其子组件。catalina 设计成所有的组件被一个父组件来管理,所有启动 bootstrap 类,只需要启动一个组件即可。
Lifecycle 接口中最重要的方法是start 和 stop 方法。
LifecycleEvent 接口
LifecycleEvent 表示一个生命周期事件
LifecycleListener 接口
LifecycleListener 可以表示生命周期监听器