web.xml中: <servlet> <servlet-name>initContext</servlet-name> <servlet-class>com.it168.control.InitContext</servlet-class> <load-on-startup>9999</load-on-startup> </servlet> 使用9999表示此Servlet的Load顺序在其它Servlet之后。 InitContext.java: /* * Created on 2004-11-20 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package com.it168.control;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;
import org.apache.log4j.Logger; import org.springframework.context.ApplicationContext; import org.springframework.web.context.WebApplicationContext;
import com.it168.Constants; import com.it168.common.ApplicationException; import com.it168.common.HibernateUtil; import com.it168.common.It168Context;
/** * @author iterator99 * * TODO To change the template for this generated type comment go to Window - * Preferences - Java - Code Style - Code Templates */ public class InitContext extends HttpServlet {
/* * (non-Javadoc) * * @see javax.servlet.GenericServlet#init() */ private transient Logger logger = Logger.getLogger(this.getClass()); public void init() throws ServletException { logger.info("InitContext it168 "); try { It168Context .setAppContext((ApplicationContext) this .getServletContext() .getAttribute( WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE)); } catch (Exception e) { e.printStackTrace(); }
try { HibernateUtil.init(); } catch (ApplicationException ae) { ae.printStackTrace(); } String propertiesfilename = getServletContext().getRealPath("/") + Constants.APP_FILEPATH; // try { // SmsListener.run(propertiesfilename); // } catch (ApplicationException ae) { // ae.printStackTrace(); // } super.init(); } }
It168Context.java: /* * Created on 2004-11-20 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package com.it168.common;
import org.springframework.context.ApplicationContext;
/** * @author iterator99 * * TODO To change the template for this generated type comment go to Window - * Preferences - Java - Code Style - Code Templates */ public class It168Context { private static ApplicationContext appContext = null; /** * @return Returns the appContext. */ public static ApplicationContext getAppContext() { return appContext; } /** * @param appContext * The appContext to set. */ public static void setAppContext(ApplicationContext appContext) { It168Context.appContext = appContext; } public static Object getBean(String id) { Object object = null; if (appContext == null) { return null; } object = appContext.getBean(id); return object; } public static Object getBean(String id, Class clz) { Object object = null; if (appContext == null) { return null; } object = appContext.getBean(id, clz); return object; } }
使用例: PartnerBiz partnerBiz = (PartnerBiz) It168Context .getBean(Constants.partnerBiz); 
|