本文共 951 字,大约阅读时间需要 3 分钟。
我们在使用Springboot或SpringMVC写controller的时候,对应的接口方法经常需要传参数,而参数注解中@RequestParam、@QueryParam、@PathParam和@PathVariable都可以实现,那她们主要有什么区别呢?我们来简单看下,
1、RequestParam和QueryParam都是采用键值对的方式取值,方法名后面加 "?" 开始,多个参数用 "&" 拼接,格式为:
/getInfos?pageNum=1&pageSize=10
2、PathParam和PathVariable是通过路径映射取值,参数都用 "/" 按照约定的顺序拼接在方法后面,格式为:
/getInfos/1/10
3、QueryParam和PathParam都是是JAX-RS自身的注解,不需要额外导包。RequestParam和PathVariable是Spring框架中的注解,需要额外导包。还有就是不同注解的参数不一致。
RequestParam是Spring中的注解,源码如下,
注解中有四个配置参数。使用方法:@RequestParam(value = "pageNum", required = false, defaultValue = "1")
QueryParam是JAX-RS自身的注解,不需要额外导包。
注解中只有一个配置参数。使用方法:@QueryParam("date") String date
PathParam是JAX-RS自身的注解,不需要额外导包。
注解中只有一个配置参数。使用方法:@PathParam("userId") String userId
PathVariable是Spring中的注解,源码如下,
注解中有三个配置参数。使用方法:@PathVariable(value = "para1", required = false) String para1
好了,上面四个注解其实功能差不多,主要是个请求方式的区别,大家可以根据自己项目的实际情况格式统一一下就可以了。
转载地址:http://vqoji.baihongyu.com/