Feign @Param 与 @RequestParam 区别
时间: 2023-11-14 17:12:10 浏览: 205
spring cloud feign不支持@RequestBody+ RequestMethod.GET报错的解决方法
5星 · 资源好评率100%
在使用Feign进行服务调用时,我们可以使用@Param和@RequestParam两种方式来传递参数。它们的区别如下:
@Param注解用于指定参数名称,它会将参数拼接到URL中,例如:
```
@GetMapping("/user/{id}")
User getUserById(@Param("id") Long id);
```
这里的@Param("id")会将id参数拼接到URL中,即/user/1。
@RequestParam注解用于指定请求参数名称,它会将参数放在请求体中,例如:
```
@GetMapping("/user")
User getUserById(@RequestParam("id") Long id);
```
这里的@RequestParam("id")会将id参数放在请求体中,即/user?id=1。
另外,引用中的错误提示“Method has too many Body parameters”是因为Feign不支持多个@RequestBody参数,如果需要传递多个参数,可以使用@Param或@RequestParam注解来替代@RequestBody。
阅读全文