SpringBoot常见的请求参数处理、参数注解以及参数自定义注解详解
SpringBoot常见http、get、post请求参数处理
在定义一个Rest接口时通常会利用get、post、put、delete来实现数据的增删改查操作,下面来谈谈它们的应用场景:
-
get
一般用于查询数据,采用明文进行传输,一般用来获取一些无关用户信息的数据
-
post
一般用于插入数据
-
put
一般用与数据更新
-
delete
一般用于数据删除(仅改变记录的状态,并非真正的删除数据)
常见的参数注解
- @PathVariable: 获取url中的数据
- @RequestBody: 利用一个对象去获取前端传过来的数据
- @RequestParam: 获取请求参数的值
- @GetMapper: 组合注解,由@RequestMapping(method = RequestMethod.GET)组合的;
PathVaribale 获取url路径的数据
实现代码如何:
/**
* @RestController 是@controller和@ResponseBody的结合
* @Controller 将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化。
* @ResponseBody 它的作用简短说就是指该类中所有的API接口返回的数据,不管对应的方法返回Map或是其他Object,它会以Json字符串的形式返回给客户端
*/
@RestController
public class HelloController {
@GetMapping("/hello/{id}/{name}")
public String sayHello(@PathVariable("id") Integer id, @PathVariable("name") String name) {
return "id:" + id + " name:" + name;
}
}
输出结果:
RequestParam 获取请求参数的值
获取url参数值,默认方式需要方法参数名称和url参数保持一致
@RestController
public class HelloController {
/**
* @GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。该注解将HTTP Get映射到特定的处理方法上。
* 即可以使用@GetMapping(value = “/hi”)来代替@RequestMapping(value=”/hi”,method= RequestMethod.GET)。
*/
@GetMapping("/hi")
public String sayHello(@RequestParam Integer id){
return "id:"+id;
}
}
输出结果:
@PathVariable和@RequestParam区别
@PathVariable是从路径里面获取变量,即把路径当做变量;
@RequestMapping(value="/user/{id}",method= RequestMethod.GET)
public String User(@PathVariable("id") Integer id){
return "id:"+id;
}
@RequestParam是从请求里面获取参数;
@GetMapping("/hi")
public String sayHi(@RequestParam Integer id){
return "id:"+id;
}