DispatcherServlet和web.xml在Spring Boot中

20 浏览
0 Comments

DispatcherServlet和web.xml在Spring Boot中

我目前正在尝试将我的Java EE项目移植到Spring Boot项目中。

但是,我卡在了dispatcher servlet和web.xml的一部分上,而且似乎项目不再读取web.xml文件。当前项目正在Tomcat 7上运行。

在我的web.xml文件中,我有很多servletservlet-mappingfilterfilter mapping,而我并不真正理解如何在dispatcher中进行映射。

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



  displayName
  description
  
    ...
  
  
    Some Filter Name
    Some Filter Class
    
      Some Param Name
      Some Value
    
  
  
    Some Filter Name
    Some url-pattern
  
  
    Some Param Name
    Some Param Value
  
  
    Some Servlet Name
    Some Servlet Class
  
  
    Some Servlet Name
    Some Url Pattern
  

问题:

  1. 如果是的话,我应该将我的web.xml的所有内容转换为依赖于Spring Dispatcher,我该如何做到这一点?
  2. 是否远离web.xml是Spring Boot项目的正确之路?

有没有人能够在这里指导我?谢谢!!

admin 更改状态以发布 2023年5月20日
0
0 Comments
  1. 您可以保留您的web.xml,但需要在其中添加

    
         org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener
     
    

    ,同时pom.xml需要添加必需的依赖项。

  2. 所有的监听器类和过滤器都需要转换成Java类。此类应该是@Configuration

  3. 如果您有拦截器,可以将其移到配置类中。

0
0 Comments
  1. 是的,Spring Boot不再依赖XML配置,并自动配置相当于派发器Servlet的等价项。您可以按照以下链接了解如何注册您的过滤器:如何在Spring Boot中添加过滤器类?
  2. 如果您使用的是Maven而不是Gradle,则您的Spring Boot项目中仅应包含pom.xml的XML。使用Spring Boot的方法是将所有的XML配置、web.xml等文件转移到Spring Boot的自动配置+您的Java配置中。

当您使用Java配置并遵循其原则时,Spring Boot可发挥出色的效果。从我的经验来看,当您开始合并XML配置和传统Spring时,它会破坏自动配置过程,并且更好尽量遵守新的Spring Boot最佳实践。

0