在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) "