我想创建一个 获取 将文件路径作为路径变量的请求。
如 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/