我们在使用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 的用法
RequestParam是Spring中的注解,源码如下,

注解中有四个配置参数。使用方法:@RequestParam(value = "pageNum", required = false, defaultValue = "1")
二、@QueryParam 的用法
QueryParam是JAX-RS自身的注解,不需要额外导包。

注解中只有一个配置参数。使用方法:@QueryParam("date") String date
三、@PathParam 的用法
PathParam是JAX-RS自身的注解,不需要额外导包。

注解中只有一个配置参数。使用方法:@PathParam("userId") String userId
四、@PathVariable 的用法
PathVariable是Spring中的注解,源码如下,

注解中有三个配置参数。使用方法:@PathVariable(value = "para1", required = false) String para1

好了,上面四个注解其实功能差不多,主要是个请求方式的区别,大家可以根据自己项目的实际情况格式统一一下就可以了。
本文详细对比了Spring框架中@RequestParam、@QueryParam、@PathParam和@PathVariable四个注解的区别,包括它们的使用场景、语法格式及源码解析,帮助开发者在实际项目中更合理地选择和应用。
8725

被折叠的 条评论
为什么被折叠?



