SpringBoot中获取参数的注解主要分为以下三个

  1. @PathVariable
  2. @RequestParam
  3. @RequestBody

一、@PathVariable

可以获取到 url 中映射的变量

  1. @GetMapping("/{name}") //占位
  2. public Result<Test> getOne(@PathVariable("name") String name){
  3. Test test = testService.getOne(name);
  4. return new Result<>(5000,"success","ok",test);
  5. }

示例:
image.png

二、@RequestParam

通常 url 中的参数就是 key = value的形式跟在 url 的后方
@RequestParam可以获取到 url 中的参数

  1. /**
  2. * 删除
  3. * */
  4. @DeleteMapping("")
  5. //public Result<Object> deleteOne(@RequestParam("name") String name){ 也可以像这么写
  6. public Result<Object> deleteOne(@RequestParam String name){
  7. int affectedRows = testService.deleteOne(name);
  8. System.out.println("affectedRows:" + affectedRows);
  9. return new Result<>(5000, "success", "ok");
  10. }

如果@RequestParam不指定对应的字段名称,那么默认就是后面声明的变量名称

三、@RequestBody

多用于content-type为application/json,@RequestBody会获取请求中所携带的json字符串内容并与注解的bean进行参数对比。

  1. @PostMapping("")
  2. public Result<Object> insertOne(@RequestBody Test test){
  3. int affectedRows = testService.insertOne(test);
  4. System.out.println("affectedRows:" + affectedRows);
  5. return new Result<>(5000, "success", "ok", test);
  6. }

image.png

会自动将传入的 raw 对象,解析到实体类中