区别:
PathVariable只能用于接收url路径上的参数,而RequestParam只能用于接收请求带的params
下面看一个简单的例子:
@PostMapping("/books/{id}")
public Object test(@PathVariable("id") long id,@RequestParam("name") String name,
@RequestParam("author") String author,
@RequestParam("isbn") String isbn) {
Map<String, Object> book = new HashMap<String, Object>();
book.put("id",id);
book.put("name", name);
book.put("author", author);
book.put("isbn", isbn);
return book;
1.这个地方的id是我们url地址上的参数使用@PathVariable注解来获取值,然而我们请求参数通过@RequestParam来获取
2.内部参数不同
PathVariable有value,name,required这三个参数,而RequestParam也有这三个参数,并且比PathVariable多一个参数defaultValue(该参数用于当请求体中不包含对应的参数变量时,参数变量使用defaultValue指定的默认值)
3.PathVariable一般用于get和delete请求,RequestParam一般用于post请求