QuickServer的学习研究(六)
?????? 在启动QuickServer的同时如果你想在服务启动的前后,服务关闭前后执行特定的操作,那么必须实现相关的ServerHook接口。实现相关的的方法。用于控制QuickServer的生命周期的各种信息。
ServerHook的源代码如下:
package org.quickserver.net;import org.quickserver.net.server.QuickServer;public abstract interface ServerHook{ public static final int PRE_STARTUP = 100; public static final int POST_STARTUP = 101; public static final int PRE_SHUTDOWN = 201; public static final int POST_SHUTDOWN = 202; public abstract String info(); public abstract void initHook(QuickServer paramQuickServer); public abstract boolean handleEvent(int event);
?其中:public abstract boolean handleEvent(int event);
根据相关的参数执行相关的信息
package com.easway.quickserver.cmd;import java.util.HashMap;import java.util.logging.Logger;import org.quickserver.net.ServerHook;import org.quickserver.net.server.QuickServer;/** * 控制服务器生命周期的类的管理器 * @author longgangbai * */public class QuickServerHook implements ServerHook {private static final Logger logger = Logger.getLogger(QuickServerHook.class.getName());private final String INFO="服务器生命周期管理";/** * 获取服务启动时相关的参数信息 */@SuppressWarnings("unchecked")private static HashMap appCfg;@SuppressWarnings("unchecked")public static HashMap getAppCfg() {return appCfg;} /** * 服务器生命周期的管理各种事件的控制口 */@Overridepublic boolean handleEvent(int event) {if(event == POST_STARTUP){logger.info("准备初始化,执行POST_STARTUP");}else if(event==PRE_STARTUP){logger.info("准备初始化 执行PRE_STARTUP");}else if(event == PRE_SHUTDOWN){logger.info("准备关闭开始执行PRE_SHUTDOWN");}else if(event==POST_SHUTDOWN){logger.info("准备关闭开始执行POST_SHUTDOWN");}return true;}@Overridepublic String info() {return INFO;} /** * 用于在启动服务之前进行相关的初始化 */@Overridepublic void initHook(QuickServer qs) {//获取服务启动时相关的配置信息appCfg = qs.getConfig().getApplicationConfiguration();logger.info("初始QuickServer");//初始化EJBLookup//执行相关的初始化信息}}
?
?