Spring boot WebFlux:从 Spring Boot 2.7.x 升级到 3.2.x 后,Spring Webfilter 类无法在 Spring WebFlux 应用程序中工作

问题描述 投票:0回答:1

我们的 Spring Web Flux 应用程序中有过滤器,如下所示

public class MyFilter implements WebFilter {
   @Override
   public Mono<Void> filter(ServerWebExchange serverWebExchange, WebFilterChain webFilterChain) 
      {
        ...
      }
}

过滤器一直在工作,直到我们使用 Spring Boot 版本 2.7.10。 最近我们从 Spring Boot 2.7.18 版本升级到 Spring Boot 3.2.6 版本 Spring Boot 升级后不会调用过滤器。

我们的 pom.xml 中有以下两个依赖项

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-webflux</artifactId>
    </dependency>

如果我删除依赖项“spring-boot-starter-web”,则会触发过滤器。但在这种情况下,API 调用返回 404。

如果我重新添加 “spring-boot-starter-web” 依赖项,则 API 可以正常工作,但不会触发过滤器。

java spring spring-boot spring-mvc spring-webflux
1个回答
0
投票

删除依赖项“spring-boot-starter-web”并更改应用程序中的以下属性后

来自(已删除) server.servlet.context-path=/myapp 至(已添加) spring.webflux.base-path=/myapp

© www.soinside.com 2019 - 2024. All rights reserved.