在Sping Boot 3中,它们已经改变,默认情况下,尾部的斜线不再被忽略。例如,如果我有一个GET资源/users
,并且我导航到/users/
,那么Spring Boot webflux现在将以404响应。
您可以通过实现WebFluxConfigurer
并重写configurePathMatching
方法来更改此设置:
@Override
public void configurePathMatching(PathMatchConfigurer configurer) {
configurer.setUseTrailingSlashMatch();
}
但是,setUseTrailingSlashMatch
已经过时了,文档上说应该使用PathPatternParser.setMatchOptionalTrailingSeparator(boolean)
,但是,我不明白您实际上是如何/在哪里配置的。
所以问题是,如何设置PathPatternParser.setMatchOptionalTrailingSeparator(boolean)
?
1条答案
按热度按时间mwg9r5ms1#
正如@joe-clay在他的评论中提到的,
PathPatternParser.setMatchOptionalTrailingSeparator(boolean)
也被明确的重定向所取代,所以你有3种选择:1.在控制器处理程序
@GetMapping("/users", "/users/")
中显式声明两条路由,缺点是需要对每个控制器都这样做,但可以用作权宜之计。1.实现
org.springframework.web.server.WebFilter
接口以显式重定向到所需的url。1.在代理中显式重写传入的url(例如在nginx中使用
rewrite
规则)以匹配预期的url。在选项2和3中,您也可以选择返回
HTTP 301
响应。