1.@SpringQueryMap是微服务之间调用,使用openfeign通过get请求方式来处理 多入参(也就是通过实体来传参) 情况的注解!
一般用在Get请求中:
@RequestParam 的参数只能是基本类型
post请求中:
@RequestBody只能用在Post请求,并且一个Post请求只能有一个@RequestBody。 @RequestBody的参数可以包括复杂类型
如果我们是Get请求,但是请求的参数又很多, 比如我在查询并分页的时候,我们的入参只有一个查询的
keyword, 但是又有分页的一些信息pageNum, pageSize, totalSize, 这时候我们一般会把这些数据封
装有一个pojo, 但是feign的get方式又不支持,这里我们可以使用openfeign提供的@SpringQueryMap来
解决这个问题,传递对象参数,让框架自动解析
2.作用:@SpringQueryMap,简单来说就是将实体转化为表单数据,比如
{
"username" : "zhangsan",
"passwd" : "******"
}
通过@SpringQueryMap标注之后呢,会变成这样子
url?username=zhangsan&passwd=******
注意:被@SpringQueryMap注解的对象只能有一个
feign调用方
@GetMapping(value = "/xx/xxxx")
ApiResponse<SysUserQueryResponse> query(@SpringQueryMap SysUserQueryRequest queryRequest);
被调用方
@GetMapping
@Operation(summary = "查询 用户")
public ApiResponse<SysUserQueryResponse> query(SysUserQueryRequest queryRequest) {
return ApiResponse.ok(sysUserReadModelRepo.query(queryRequest));
}