@RequestParam、@QueryParam等Spring常见参数注解区别,你知道吗

我们在使用Springboot或SpringMVC写controller的时候,对应的接口方法经常需要传参数,而参数注解中@RequestParam、@QueryParam、@PathParam和@PathVariable都可以实现,那她们主要有什么区别呢?我们来简单看下,

@RequestParam、@QueryParam等Spring常见参数注解区别,你知道吗

 

一、先看区别

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、@QueryParam等Spring常见参数注解区别,你知道吗

 

注解中有四个配置参数。使用方法:@RequestParam(value = "pageNum", required = false, defaultValue = "1")

二、@QueryParam 的用法

QueryParam是JAX-RS自身的注解,不需要额外导包。

@RequestParam、@QueryParam等Spring常见参数注解区别,你知道吗

 

注解中只有一个配置参数。使用方法:@QueryParam("date") String date

三、@PathParam 的用法

PathParam是JAX-RS自身的注解,不需要额外导包。

@RequestParam、@QueryParam等Spring常见参数注解区别,你知道吗

 

注解中只有一个配置参数。使用方法:@PathParam("userId") String userId

四、@PathVariable 的用法

PathVariable是Spring中的注解,源码如下,

@RequestParam、@QueryParam等Spring常见参数注解区别,你知道吗

 

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

@RequestParam、@QueryParam等Spring常见参数注解区别,你知道吗

 

好了,上面四个注解其实功能差不多,主要是个请求方式的区别,大家可以根据自己项目的实际情况格式统一一下就可以了。