【发布时间】:2015-08-17 20:37:44
【问题描述】:
如何确定 Web 应用程序中的 web.xml 在任何 Spring WebApplicationInitializer 类之前加载?
来自WebApplicationInitializer的Javadoc:
WEB-INF/web.xml和WebApplicationInitializer不能互相使用 独家的;例如,web.xml 可以注册一个 servlet,以及一个 WebApplicationInitializer 可以注册另一个。初始化器可以 甚至可以通过以下方法修改在 web.xml 中执行的注册 ServletContext.getServletRegistration(String)...
因此,根据这个我可能会假设 web.xml 在任何 WebApplicationInitializer 类之前加载。我没有观察到这种情况。
我正在提供WebApplicationInitializer 的实现,我想要在代码中执行以下操作,以便如果 servlet 已经在 web.xml 文件中注册了,那么我不会尝试第二次注册:
@Override
public void onStartup(ServletContext servletContext) {
if(servletContext.getServletRegistration(MY_SERVLET_NAME) == null) {
// Servlet not already registered in web.xml so register it now
servletContext.addServlet(..etc)
}
}
【问题讨论】: