分类: Java
2010-07-06 21:15:19
在spring和各种MVC整合的框架下,在我们自己写的代码中要使用ApplicationContext是不方便的。
spring有一个类
org.springframework.web.context.support.WebApplicationContextUtils它有一个static的方法 getWebApplicationContext(ServletContext sc) 可以使我们得到一个ApplicationContext的引用,但这个方法有一个参数ServletContext,它是Servlet容器提供的上下文,在非Servlet环境下是得不到的。我们可以定义一个servlet,该servlet配置为被容器第一个加载,它可以得到ServletContext,从而得到ApplicationContext的引用,我们再把这个引用保存在一个所用应用都能访问到的地方。package xxx.utils;import org.springframework.context.ApplicationContext;public class SpringBeanProxy { private static ApplicationContext applicationContext; public synchronized static void setApplicationContext(ApplicationContext arg0) { applicationContext = arg0; } public static Object getBean(String beanName){ return applicationContext.getBean(beanName); }}package xxx.servlets;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import org.springframework.web.context.support.WebApplicationContextUtils;import xxx.utils.SpringBeanProxy;public class SpringBeanInitServlet extends HttpServlet { public void init(ServletConfig arg0) throws ServletException { SpringBeanProxy.setApplicationContext(WebApplicationContextUtils.getWebApplicationContext(arg0.getServletContext())); }}在web.xml中
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/dqatsh/archive/2008/12/07/3469278.aspx