有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java获取ServletContextListener上的spring应用程序上下文

我试图在ServletContextListener上获取spring应用程序上下文。我正在使用带注释配置的Spring。使用这段代码,我得到了“contextnull”。我做错了什么

@WebListener
public class Initializer implements ServletContextListener
{   
    public void contextInitialized(ServletContextEvent event)
    {
        System.out.println("context " + WebApplicationContextUtils.getWebApplicationContext(event.getServletContext()));
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce)
    {
    }
}

谢谢


共 (1) 个答案

  1. # 1 楼答案

    解决此问题的关键是删除注释@WebListenerWebAppInitializer覆盖onStartup,以确保ContextLoaderListenerInitializer之前加载

    public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer
    {
    .
    .
    .
        @Override
        public void onStartup(ServletContext container) throws ServletException
        {
            super.onStartup(container);
            container.addListener(Initializer.class);
        }
    }