目录
Lifecycle接口
Tomcat通过org.apache.catalina.Lifecycle接口统一管理生命周期,所以所有生命周期的组件都要实现Lifecycle接口
Lifecycle接口一共做了4件事
定义了13个String类型常量,用于LifecycleEvent事件的type属性中,作用:区分组件发生的事件状态。这种设计方式可以让多种状态都发送同一种类型的事件,然后用其中的一个属性来区分状态而不用定义多种事件
定义了三个管理监听器的方法addLifecycleListener,findLifecycleListeners,removeLifecycleListener
定义了4个生命周期的方法:init,start,stop,destroy
定义了获取当前状态的两个方法:getState,getStateName,用来获取当前的状态,geState的返回值LifecycleState是枚举类型,里面列举了生命周期的各个节点,getStateName方法返回String类型的状态名字,主要用于JMX中。
Lifecycle接口定义如下:
package org.apache.catalina;
public abstract interface Lifecycle
{
//13中事件类型
public static final String BEFORE_INIT_EVENT = "before_init";
public static final String AFTER_INIT_EVENT = "after_init";
public static final String START_EVENT = "start";
public static final String BEFORE_START_EVENT = "before_start";
public static final String AFTER_START_EVENT = "after_start";
public static final String STOP_EVENT = "stop";
public static final String BEFORE_STOP_EVENT = "before_stop";
public static final String AFTER_STOP_EVENT = "after_stop";
public static final String AFTER_DESTROY_EVENT = "after_destroy";
public static final String BEFORE_DESTROY_EVENT = "before_destroy";
public static final String PERIODIC_EVENT = "periodic";
public static final String CONFIGURE_START_EVENT = "configure_start";
public static final String CONFIGURE_STOP_EVENT = "configure_stop";
//3个管理监听器的方法
public abstract void addLifecycleListener(LifecycleListener paramLifecycleListener);
public abstract LifecycleListener[] findLifecycleListeners();
public abstract void removeLifecycleListener(LifecycleListener paramLifecycleListener);
//4个生命周期的方法
public abstract void init()
throws LifecycleException;
public abstract void start()
throws LifecycleException;
public abstract void stop()
throws LifecycleException;
public abstract void destroy()
throws LifecycleException;
//2个获取当前状态的方法
public abstract LifecycleState getS