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;
	}
    /**
     * 服务器生命周期的管理各种事件的控制口
     */
	@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
		//执行相关的初始化信息
	}

}

 

 

你可能感兴趣的:(.net,配置管理)