java - Spring Boot 中的 DispatcherServlet 和 web.xml

标签 java spring spring-boot tomcat7 web.xml

我目前正在尝试将我的项目从 Java EE 迁移到 Spring Boot 项目。 但是,我一直对调度程序 servlet 和 web.xml 感到困惑和困惑,并且似乎 web.xml 不再被项目读取。当前项目在tomcat 7上运行。

在我的 web.xml 文件中,我有很多 servletservlet-mappingfilter过滤器映射,我真的不明白如何在调度程序中进行映射。

我在下面附上了我的 web.xml 示例,版本是 2.5。

<?xml version="1.0" encoding="UTF-8"?>
<web-app metadata-complete="true" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name>displayName</display-name>
  <description>description</description>
  <resource-ref>
    ...
  </resource-ref>
  <filter>
    <filter-name>Some Filter Name</filter-name>
    <filter-class>Some Filter Class</filter-class>
    <init-param>
      <param-name>Some Param Name</param-name>
      <param-value>Some Value</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>Some Filter Name</filter-name>
    <url-pattern>Some url-pattern</url-pattern>
  </filter-mapping>
  <context-param>
    <param-name>Some Param Name</param-name>
    <param-value>Some Param Value</param-value>
  </context-param>
  <servlet>
    <servlet-name>Some Servlet Name</servlet-name>
    <servlet-class>Some Servlet Class</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Some Servlet Name</servlet-name>
    <url-pattern>Some Url Pattern</url-pattern>
  </servlet-mapping>
</web-app>

问题:

  1. 我是否应该将我的 web.xml 中的所有内容都转换为依赖 spring 调度程序,如果可以,我该如何实现?
  2. 远离 web.xml 是否适合 Spring Boot 项目?

有人可以在这里指导我吗?谢谢!!

最佳答案

  1. 是的,spring boot 不再依赖 xml 配置,它自动配置了一个等效于 dispatcher servlet。您可以点击以下链接查看如何注册您的过滤器:How to add a filter class in Spring Boot?
  2. 如果你使用 maven 而不是 gradle,那么你的 spring boot 项目中唯一的 XML 应该是 pom.xml。使用 Spring Boot 的方法是将所有 xml 配置、web.xml 等移动到 Spring Boot 的自动配置 + 你的 Java 配置。

当您在 java 配置中执行所有操作并遵循其原则时,Spring boot 非常有效。根据我的经验,当您开始合并 XML 配置和旧 Spring 时,它会开始破坏自动配置过程,最好尽可能多地尝试遵守新的 Spring Boot 最佳实践。

关于java - Spring Boot 中的 DispatcherServlet 和 web.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43225549/

相关文章:

来自另一个属性的 spring application.yml 引用列表

javascript - 如何调用将文件上传到露天

spring-mvc - 无法在测试类中 Autowiring bean

java - 关于数组列表中已定义的槽

java - 我可以请人验证我的 SCJP 考试 Collection 吗

java - Spring XML 错误 : Could not resolve placeholder 'cas.server.host'

Java + Docker : Different datasource url

spring - 如何访问 Thymeleaf 中包含点的 Spring MVC 模型属性名称

java - HTMLUnit - 如何获取传出连接列表作为列表?

api - 获取与文件修订相关的日期和描述 - Java API Perforce