如何应用 Spring 5 中引入的 PathPatternParser?

Lya*_*nic 5 java spring spring-boot

我想创建一个将文件路径作为路径变量的GET请求。

随着春天文档中描述的发现在这里,这应该是可以通过使用以下命令:/资源/ {*}路径。

我正在使用使用 Spring 5 的 Spring Boot 2.1.2。

但是,当我像这样设置控制器方法时,请求与路由不匹配。预期的匹配路径将是例如 /resources/some/filepath 这应该导致 PathVariable“路径”为 /some/filepath

  @GetMapping("/resources/{*path}")
  public String content(@PathVariable String path) {
    return null;
  }
Run Code Online (Sandbox Code Playgroud)

我没有找到有关使用新 PathPattern 所需的任何配置的任何信息。我发现的有关此新功能的唯一其他信息是 Baeldung ( https://www.baeldung.com/spring-5-mvc-url-matching ) 上的一篇文章,其中没有提及任何有关配置的信息。所以我希望它应该开箱即用,但事实并非如此。

我克隆了 Baeldung 帖子中提到的项目。相应的单元测试运行。当我将 Controller 方法和单元测试复制到我的项目时,它失败了。所以我希望它与配置有关。

感谢您的任何帮助。

Enm*_*Paz 9

在Spring 文档的通用应用程序属性中,有一个名为spring.mvc.pathmatch.matching-strategy 的属性,该属性用作“根据注册映射匹配请求路径的策略选择”。

默认值(到目前为止)是ant-path-matcher,并且由于您想使用 PathPattern,因此需要将其写入 application.properties 文件中:

spring.mvc.pathmatch.matching-strategy=路径模式解析器