1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| - Lifecycle接口 - 所有需要被生命周期管理的容器 都需要实现该接口 - 定义生命周期事件,如BEFORE_INIT_EVENT - 定义生命周期方法,如init(),start(),stop() - 定义监听器操作:添加监听器,查询所有监听器,移除监听器 如addLifecycleListener(),findLifecycleListeners(),removeLifecycleListener()
- LifecycleBase类 - Lifecycle接口的基础实现.基本实现逻辑: 比如,当调用standardServer.init() - 由于该容器类继承LifecycleBase类,且未重写init()方法, 所以会调用到LifecycleBase.init()方法 - LifecycleBase.init()方法中先调用 LifecycleBase.setStateInternal(LifecycleState.INITIALIZING, null, false) 变更生命周期状态为LifecycleState.INITIALIZING 这个变更会调用各个事件监听中的 初始化方法 - 模板方法,调用各个子类容器中的实现逻辑 即initInternal()方法,这个方法一般被子类覆盖,执行子类自己的逻辑 如StandServer.initInternal() - 变更状态为初始化完成
- 各个容器类 - 实现init()等生命周期方法,且自行调用子容器相应的生命周期方法, 如:standServer.init() 会调用 standardService.init()
- 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) - 生命周期状态转化 - 如一个容器调用init()后,状态转化为NEW->INITIALIZING->INITIALIZED
- LifecycleSupport 辅助类 - 用于帮助管理该组件或容器上的监听器,里面维护了一个监听器数组,并提供了注册,移除,触发监听器等方法
|