我们的 Spring WebFlux 应用程序中有一个过滤器,如下所示
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