让我们假设以下控制器:
@RestController
public class MyController {
@RequestMapping(method = GET, path = "/info")
public InfoModel getInfo(){
...
}
@RequestMapping(method = GET, path = "/{resourceId}")
public ResourceModel getResource(@PathVariable("resourceId") String resourceId){
...
}
}
问题是:卷曲GET /info
时会调用哪种方法。
在我的所有测试中getInfo
被调用,这似乎很清楚。
但我不是百分之百确定这是否只是一个幸运的竞争条件,或者是否指定静态路径的优先级高于变量路径。
即使经过一些研究,我也找不到这个案例的规范,只有一些相当古老(可能已过时)的博客文章。
我正在使用SpringBoot 2.0.2。
答案 0 :(得分:4)
这不是一个幸运的竞争条件。没有路径变量的模式将始终优先。
请参阅Spring Pattern Comparison
下的详细解释Request Mapping的Spring MVC文档。
答案 1 :(得分:0)
如果你在类级别指定了路径(@RequestMapping(“/ home”),如下所示
Not a valid JAR: /user/dir1/hadoop-streaming-2.6.0.jar
然后你必须卷曲GET / home / info。所有网址路径都由您定义/决定。