Spring boot 强制Spring引导在web.xml中使用servlet映射

Spring boot 强制Spring引导在web.xml中使用servlet映射,spring-boot,jar,tomcat7,web.xml,servlet-3.0,Spring Boot,Jar,Tomcat7,Web.xml,Servlet 3.0,我目前正试图将现有的动态web项目转移到Spring boot项目,它使用web.xml进行servlet映射。我知道spring会忽略web.xml文件,spring使用现有web.xml的正确方法应该是什么?是的,我仍然需要坚持在这个项目中使用web.xml 我对这有点陌生,请引导我通过!谢谢 我认为您需要坚持使用web.xml,因为您的容器使用的Servlet版本比3.0旧 SpringBoot构建在Servlet3.0上。您必须更新主类以扩展SpringBootServletInitia

我目前正试图将现有的动态web项目转移到Spring boot项目,它使用web.xml进行servlet映射。我知道spring会忽略web.xml文件,spring使用现有web.xml的正确方法应该是什么?是的,我仍然需要坚持在这个项目中使用web.xml


我对这有点陌生,请引导我通过!谢谢

我认为您需要坚持使用web.xml,因为您的容器使用的Servlet版本比3.0旧

SpringBoot构建在Servlet3.0上。您必须更新主类以扩展SpringBootServletInitializer并重写configure方法,该方法告诉spring使用其Servlet3.0支持。像Tomcat这样的嵌入式容器需要Servlet 3.0,因此,如果您想在嵌入式容器的开发过程(包括JUnit测试)中启动项目,我认为,据我所知,唯一的方法是将web.xml重写为Servlet 3.0 java配置。但如果你真的想在一个旧的容器中部署你的应用程序,你仍然可以使用
springboot legacy
模块。它允许您对旧容器使用web.xml;你唯一要做的就是添加
org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener
在web.xml中

有关在旧容器中部署war的更多信息,请查看SpringBoot的

SpringBoot使用Servlet3.0API初始化ServletContext (注册servlet等),这样您就不能使用同一个应用程序了 Servlet 2.5容器中的框。但是,可以运行 使用一些特殊工具在旧容器上启动Spring应用程序。 如果您将org.springframework.boot:springboot遗留作为 依赖关系(分别维护到Spring Boot和 当前在1.0.2.RELEASE中提供),您需要做的只是 创建web.xml并声明上下文侦听器以创建 应用程序上下文以及过滤器和servlet


这是一个非常古老的问题,但我目前的情况相同,我将分享我的经验


我扩展了SpringBootServletilizer类来创建@SpringBootApplication,默认情况下,它将包括您的web.xml配置。我仍然能够声明或编辑现有的servlet映射,并将其考虑在内。

谢谢您的输入!。我目前正在使用Servlet3.0和Tomcat7.0.75。我之所以坚持使用web.xml,是因为其中有很多servlet映射,我只想首先将其转换为spring boot项目。我确实计划用合适的web.xml替换当前的web.xml,比如(servletcontainerinitializer)?