日期:2014-05-20  浏览次数:20623 次

Spring ContextLoaderListener 继承 如何实现单例
在spring中,如果存在多个servlet请求,就会生成多个ApplicationContext的对象。这多个ApplicationContext对象都是相同的,所以 我想实现ApplicationContext对象的单例,于是在网上看到 

继承 ContextLoaderListener可以实现 
将ContextLoaderListener重写成下面这样
public void contextInitialized(ServletContextEvent event)
{
  super.contextInitialized(event);
ServletContext context = event.getServletContext();
ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(context);
  ContextUtil.setContext(ctx);

然后ApplicationContext context = ContextUtil.getContext();这样就可以获得ApplicationContext的单例
我servlet不怎么会 大家谁懂 帮帮忙


------解决方案--------------------
用ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(context); 得到的ApplicationContext不是singleton?
------解决方案--------------------
修改spring的ContextLoaderListener。在contextInitialized方法中,将spring已经初始一个单例ApplicationContext
------解决方案--------------------
主要是"public void contextInitialized(ServletContextEvent event) "