我们的 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 可以正常工作,但不会触发过滤器。
删除依赖项“spring-boot-starter-web”并更改应用程序中的以下属性后
来自(已删除) server.servlet.context-path=/myapp 至(已添加) spring.webflux.base-path=/myapp