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