Package com.etown.util

Source Code of com.etown.util.EnvInitServlet

package com.etown.util;

import java.util.Enumeration;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

import com.etown.dao.DBPool;
import com.etown.lucene.FileScheduler;
import com.etown.lucene.FileSchedulerTask;
import com.etown.lucene.TimeStep;

/**
* 系统参数初始化Servlet
* 系统启动时会自动执行此Servlet的init方法
* @author 大漠穷秋
*/
@SuppressWarnings("serial")
public class EnvInitServlet extends HttpServlet {
  private String webRootDir;

  public static final String WEB_HOME = "web.home";

  private static Logger log = Logger.getLogger(EnvInitServlet.class);

  //设置日志记录跟踪器
  public static Logger etownlogger = Logger.getLogger("stdout");//设置事件日志记录器

  public void init() {
    //解析应用根目录
    parsewebRootDir();

    //初始化Log4j日志
    configLog4j();

    //加载配置的系统参数
    loadProperties();

    //初始化数据库连接
    initDBConn();
   
    //初始化Lucene相关
    monitorLuceneTxTFile();
  }

  /**
   * 解析应用根目录
   *
   */
  private void parsewebRootDir() {
    webRootDir = getServletContext().getRealPath("/");
    System.setProperty(WEB_HOME, webRootDir);
  }

  /**
   * 初始化Log4j日志
   *
   */
  private void configLog4j() {
    String file = getInitParameter("log4j-init-file");
    if (file != null) {
      PropertyConfigurator.configure(webRootDir + file);
    }
    etownlogger = Logger.getLogger("stdout");
  }

  /**
   *加载配置的系统参数
   *
   */
  private void loadProperties() {
    ServletContext sc = this.getServletContext();
    Enumeration e = sc.getInitParameterNames();
    while (e.hasMoreElements()) {
      String name = (String) e.nextElement();
      String value = sc.getInitParameter(name);
      System.setProperty(name, value);
      log.info("添加系统参数名:" + name + ";参数值:" + value);
    }
  }

  /**
   * 初始化数据库连接
   *
   */
  private void initDBConn(){
    DBPool.initConn(10);
  }
 
  /**
   * 初始化Lucene引擎
   *
   */
  private void monitorLuceneTxTFile() {
    //创建local_files文件监控任务
    FileSchedulerTask fileSchedulerTask = new FileSchedulerTask(System
        .getProperty("web.home")
        + System.getProperty("luceneLocalFolder"));
    FileScheduler fileScheduler = new FileScheduler();
    fileScheduler.schedule(fileSchedulerTask, new TimeStep());
  }

}
TOP

Related Classes of com.etown.util.EnvInitServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.