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);