QuickServer的学习研究(六)
程序员文章站
2022-04-20 09:00:30
...
在启动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;
}
/**
* 服务器生命周期的管理各种事件的控制口
*/
@Override
public 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;
}
@Override
public String info() {
return INFO;
}
/**
* 用于在启动服务之前进行相关的初始化
*/
@Override
public void initHook(QuickServer qs) {
//获取服务启动时相关的配置信息
appCfg = qs.getConfig().getApplicationConfiguration();
logger.info("初始QuickServer");
//初始化EJBLookup
//执行相关的初始化信息
}
}
上一篇: nfs
推荐阅读
-
一个简单的模板引擎类,此类仅作研究并不完善,希望有朋友一起参与学习研究
-
Django官方文档的tutorials六个part全部读完之后,如何继续深入学习官方文档?
-
开学必装!能提高学习效率的六款App:每一款都超好用
-
linux学习日记六 文件与文件系统的压缩与打包
-
php入门学习知识点六 PHP文件的读写操作代码
-
开学必装!能提高学习效率的六款App:每一款都超好用
-
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
-
Linux系统学习 六、网络基础—Linux的IP地址的配置
-
MIT的研究人员利用机器学习预测比特币价格
-
国家自然奖二等奖:基于不充分信息的机器学习理论与方法研究