Java 在ServletContextListener上获取spring应用程序上下文
我试图在ServletContextListener上获取spring应用程序上下文。我正在使用带注释配置的Spring。使用这段代码,我得到了“contextnull”。我做错了什么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
@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
应该在这个侦听器之前执行。它对我有用,谢谢