initsyslistener.java

来自「Java开发的权限管理的例子」· Java 代码 · 共 86 行

JAVA
86
字号
package org.artemis.manager.common;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.xml.DOMConfigurator;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import com.gsta.eshore.framework.service.impl.ContextServiceLocator;
import com.gsta.eshore.framework.servicerepository.ServiceLocator;
import org.artemis.right.RightDelegate;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class InitSysListener implements ServletContextListener {
	 private static Logger logger = Logger.getLogger(InitSysListener.class);
    private ServletContext servletContext;
    private static boolean state = false;
    /**
     * 系统初始化
     */
    public void contextDestroyed(ServletContextEvent event) {
    }


    public void contextInitialized(ServletContextEvent event) {
    	logger.info("********* Initialized System now *********************");
        boolean result = ServiceLocator.getInstance().init("etc/ServiceConfig.xml");
        logger.info("init ServiceConfig.xml with result = "+result);
        
        String logFile=(String)ServiceLocator.getInstance().getOne("log4j");
        boolean logresult = initlog4j(1,logFile);
        logger.info("init log4j with result = "+logresult);
        result=initspring(event);
        logger.info("init spring with result = "+result);
        //得到EJB
        result=((RightDelegate)ContextServiceLocator.getInstance().getBean(Constants.BizDelegateTarget)).init(Constants.rightFacade);//得到EJB
        logger.info("init rightFacade Session Bean with result = "+result);
        logger.info("********* Initialized System success *********************");
    }

    /*
     * 从Web上下文得到Spring
     */
    private boolean initspring(ServletContextEvent event) {
		if (state) 
			return state;
		servletContext = event.getServletContext();
		ApplicationContext ctx= WebApplicationContextUtils.getWebApplicationContext(servletContext);
		if (ctx == null) 
			state = false;
		else 
			state = true;
		ContextServiceLocator.getInstance().setContext(ctx);
		logger.debug("ContextServiceLocator = "
				+ ContextServiceLocator.getInstance());
		logger.debug("ContextServiceLocator context = "
				+ ContextServiceLocator.getInstance().getContext());
		return state;
	}
  
	private boolean initlog4j(int debug, String logFile) {
		if (debug >= 1) {
			SimpleDateFormat formatter = new SimpleDateFormat(
					"MMM d, yyyy H:mm:ss a z");
			Date today = new Date();
			String output = "<" + formatter.format(today) + "> <Debug> ";
			logger.info(output + "  app log4j prop file: " + logFile);
		}

		// If the log4j-init-file is not set, then no point in trying
		if (logFile != null) {
			if (logFile.toString().toLowerCase().endsWith(".xml")) {
				DOMConfigurator.configure(logFile);
			} else {
				PropertyConfigurator.configure(logFile);
			}
			return true;
		} else {
			return false;
		}
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?