强迫Spring引导在Web.xml中使用servlet映射



我当前正在尝试将我现有的动态Web项目转移到Spring Boot Project,并且使用Web.xml进行Servlet映射。我知道Spring会忽略Web.xml文件,Spring使用现有Web.xml应该是什么正确的方法?是的,我仍然需要坚持使用Web.xml进行此项目。

我有点新手,请指导我通过!谢谢!

我想您需要坚持使用web.xml,因为您的容器使用了较旧的Servlet版本,而不是3.0。

Spring Boot建立在Servlet 3.0上。您必须更新主类以扩展SpringBootServletInitializer和Override Configure方法,该方法告诉Spring使用其Servlet 3.0支持。嵌入式容器(如Tomcat Sured Seed Servlet 3.0),因此,如果您想在开发过程中启动项目(包括JUNIT测试)在嵌入式容器中,我认为,据我所知,唯一的方法就是将Web.xml重写为Servlet 3.0Java配置。但是,如果您真的想将应用程序部署在较旧的容器中,则仍然可以使用spring-boot-legacy模块。它允许您将Web.xml用于较旧的容器;您唯一要做的就是添加 org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener在您的Web.xml中。

有关在旧容器中部署战争的更多信息,请查看Spring Boot的官方文档。

Spring Boot使用Servlet 3.0 API来初始化ServletContext (注册servlet等),因此您无法使用相同的应用程序 Servlet 2.5容器中的盒子。但是可以运行 带有一些特殊工具的春季启动应用程序在较旧的容器上。 如果您包括org.springframework.boot:spring-boot-legacy作为一个 依赖性(单独维护到春季靴子的核心和 目前可在1.0.2.2.Release),您要做的就是 创建一个web.xml并声明上下文侦听器以创建 应用程序上下文以及您的过滤器和servlet。

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

我扩展了SpringBootServletInitializer类以创建我的@springbootapplication,默认情况下将包括您的Web.xml配置。我仍然可以声明或编辑现有的servlet映射,并且将在帐户中进行。

最新更新