Spring Boot 使用**的Java Sprint端点匹配器未按预期工作

1hdlvixo  于 2023-01-30  发布在  Spring
关注(0)|答案(1)|浏览(114)

我正在做一个示例项目,以了解更好的端点匹配器::

@GetMapping(path ="/v3**", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<byte[]> genericV3GetRequestProxy(ProxyExchange<byte[]> proxy);

但是当我发送这个http调用时,它不匹配:

http://localhost:9000/api/v3asdasd/asd

相反,如果我发送这个它的工作:

http://localhost:9000/api/v3asdasd

最后正确的解决方案只是:

@GetMapping(path ="/v3/**", produces = MediaType.APPLICATION_JSON_VALUE)

但我想知道为什么它会像我展示的那样。

oknwwptz

oknwwptz1#

当您在URI中添加斜线时,您创建了一个单独的路径段,因为/根据RFC 3986定义为路径分隔符。
https://www.rfc-editor.org/rfc/rfc3986#section-3.3

相关问题