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

标签 java spring spring-boot

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

如 Spring 文档中所述,发现 here ,这应该可以通过使用以下内容:/resources/{*path}。

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

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

  @GetMapping("/resources/{*path}")
  public String content(@PathVariable String path) {
    return null;
  }

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

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

感谢您的任何帮助。

最佳答案

Common Application properties在 Spring 文档中有一个名为 的属性。 spring.mvc.pathmatch.matching-strategy ,用作“根据注册映射匹配请求路径的策略选择”。
默认值(截至目前)为 Ant 路径匹配器 ,并且由于您想使用 PathPattern,因此您需要在 application.properties 文件中写入:
spring.mvc.pathmatch.matching-strategy=路径模式解析器

关于java - 如何应用 Spring 5 中引入的 PathPatternParser?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55457184/

相关文章:

java - 如何在java中精确复制图像?

java - 所有作业完成后 Spring Batch 触发流程

java - 将未确认的消息(异常)放入 RabbitMQ 中的不同队列

java - Intellij 运行 Spring Boot 应用程序时没有运行按钮

java - 无法从位置 [META-INF/spring.factories] 加载工厂

java - 在 Spring Boot 中使用后置方法保存多个实体时的无限循环

java - 检测图中的所有圆圈

java - JAVA 一次性移动 2D 形状

java - 如何从右对齐java中的输出?

java - 如何动态更新属性文件?