Java 在ServletContextListener上获取spring应用程序上下文

Java 在ServletContextListener上获取spring应用程序上下文,java,spring,spring-mvc,Java,Spring,Spring Mvc,我试图在ServletContextListener上获取spring应用程序上下文。我正在使用带注释配置的Spring。使用这段代码,我得到了“contextnull”。我做错了什么 @WebListener public class Initializer implements ServletContextListener { public void contextInitialized(ServletContextEvent event) { Syst

我试图在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)
    {
    }
}

谢谢

解决此问题的关键是删除注释
@WebListener
并在
WebAppInitializer
上覆盖
onStartup
,以确保
ContextLoaderListener
初始值设定项之前加载

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

你对听众的排序是错误的。
ContextLoaderListener
应该在这个侦听器之前执行。它对我有用,谢谢