feign get方法使用对象参数
feign中和controller中不一样的地方
controller中可以get方法使用对象参数无需任何注解,可默认绑定到对象
@ApiOperation("分页列表")
@GetMapping("/paged")
fun getPaged(query: UserQuery): ResponseEntity<Page<UserVO>> {
return Response.OK(userService.getPaged(query))
}
而在feign的client中必须对每一个参数都加上注解,否则会报错。feign有提供一个注解@QueryMap,来处理get方法的对象参数,不过和spring的机制冲突。所以spring提供了一个@SpringQueryMap注解。
@GetMapping("/paged")
fun getPaged(@SpringQueryMap query: UserQuery): Page<UserVO>
需要注意的是在controller中,get方法可以有多个对象参数,无需额外的注解都能自动绑定。
而在feign中,@SpringQueryMap虽然可以和@RequestParam、@PathVariable混用
,但是参数列表中只能使用一个@SpringQueryMap注解,多个只有一个会生效。即feign中的get方法最多只能有一个对象参数