在restful风格中会使用的这些注释,那么这些注释有什么区别呐?
Restful风格
优点:
简洁(路径更加简洁)、安全(不暴露参数,隐藏了程序中的信息)、高效(支持缓存)
Restful风格和传统操作方式的对比:
@PathVariable
映射 URL 绑定的占位符:通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器(controller)处理方法的形参中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的形参中。
方法名称和需要绑定的url中变量名称相同时,可以简写(@PathVariable String name),不太相同时不可以简写(@PathVariable(“name”) String userName)
@RequestParam
用于将指定的请求参数赋值给方法中的形参。通过注解@RequestParam可以轻松地将URL中的参数绑定到处理函数方法的变量中
@RequestParam和@PathVariable都能够完成类似的功能——因为本质上,它们都是用户的输入,只不过输入的部分不同,一个在URL路径部分,另一个在参数部分
通过@PathVariable,例如/blogs/1
通过@RequestParam,例如blogs?blogId=1
@RequestBody
主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);
在GET请求中,可以使用@PathVariable和@RequestParam,但是不能使用
@RequestBody,因为@RequestBody是在请求体中拿数据,而GET请求没有请求体
(参考了博客:
Spring Boot中@PathVariable、@RequestParam和@RequestBody的区别和使用-CSDN博客)