1、Catalina包含许多组件
- Catalina 启动关闭时,这些组件一起启动关闭
- 实现 org.apache.catalina.LifeCycle 接口,可以达到统一启动/关闭这些组件
2、实现了LifeCycle 接口的组件会触发如下事件
事件是org.apache.catalina.LifeCycleEvent 类的实例
- BEFORE_START_EVENT
- START_EVENT
- AFTER_START_EVENT
- BEFORE_STOP_EVENT
- STOP_EVENT
- AFTER_STOP_EVENT
事件监听器 org.apache.catalina.LifeCycleListener 对这些事件进行响应
- LifeCycleSupport 工具类,提供了简单的方法触发生命周期事件
3、LifeCycle 接口
- Catalina 在设计上允许一个组件包含其他组件
- 父组件负责启动/关闭子组件
- 子组件在父组件监护下,只需要启动一个组件就可以将全部应用的组件启动起来
- 接口最重要方法 start 、stop 方法
- 可以添加多个事件监听器
- LifeCycle 接口实例可以触发的6个事件是以公共静态 final 字符串表示
4、LifeCycleEvent 类(声明周期事件)
5、LifeCycleListener 接口
- 只有一个方法,当某个监听器监听到相关事件发生时会调用该方法
6、LifeCycleSupport 类(工具类)
一个组件实现了 LifeCycle接口,并且对某个事件注册了监听
- 必须提供LifeCycle接口中3个与监听器相关方法的实现(添加监听器、删除监听器、查询监听器)
- 该组件需要将所有注册的事件监听器存储起来(数组或ArrayList)
- LifeCycleSupport 工具类来帮助管理监听器,并触发相应的生命周期事件
- 存储监听器、添加监听器、删除监听器、查询监听器、触发事件等