以下两个属性之间有什么区别,什么时候使用哪个?
@GetMapping(path = "/usr/{userId}")
public String findDBUserGetMapping(@PathVariable("userId") String userId) {
return "Test User";
}
@RequestMapping(value = "/usr/{userId}", method = RequestMethod.GET)
public String findDBUserReqMapping(@PathVariable("userId") String userId) {
return "Test User";
}
原文由 Raj 发布,翻译遵循 CC BY-SA 4.0 许可协议
如评论(和 文档)中所述,
value
是path
的别名。 Spring 通常将value
元素声明为常用元素的别名。在@RequestMapping
的情况下(和@GetMapping
,…)这是path
属性:这背后的原因是
value
元素是注释的默认元素,因此它允许您以更简洁的方式编写代码。这方面的其他例子是:
@RequestParam
(value
→name
)@PathVariable
(value
→name
)但是,别名不仅限于注释元素,因为正如您在示例中所演示的,
@GetMapping
是@RequestMapping(method = RequestMethod.GET
的别名。只要 在他们的代码中查找
AliasFor
的引用, 您就会发现他们经常这样做。