SpringBoot中获取参数的注解主要分为以下三个
@PathVariable
@RequestParam
@RequestBody
一、@PathVariable
可以获取到 url 中映射的变量
@GetMapping("/{name}") //占位
public Result<Test> getOne(@PathVariable("name") String name){
Test test = testService.getOne(name);
return new Result<>(5000,"success","ok",test);
}
示例:
二、@RequestParam
通常 url 中的参数就是 key = value的形式跟在 url 的后方
@RequestParam可以获取到 url 中的参数
/**
* 删除
* */
@DeleteMapping("")
//public Result<Object> deleteOne(@RequestParam("name") String name){ 也可以像这么写
public Result<Object> deleteOne(@RequestParam String name){
int affectedRows = testService.deleteOne(name);
System.out.println("affectedRows:" + affectedRows);
return new Result<>(5000, "success", "ok");
}
如果@RequestParam不指定对应的字段名称,那么默认就是后面声明的变量名称
三、@RequestBody
多用于content-type为application/json,@RequestBody会获取请求中所携带的json字符串内容并与注解的bean进行参数对比。
@PostMapping("")
public Result<Object> insertOne(@RequestBody Test test){
int affectedRows = testService.insertOne(test);
System.out.println("affectedRows:" + affectedRows);
return new Result<>(5000, "success", "ok", test);
}
会自动将传入的 raw 对象,解析到实体类中