优化Feign的GET请求支持VO参数
优化Feign的GET请求支持VO参数
FeginClient客户端
推荐使用@SpringQueryMap注解
@FeignClient(name = "service-name")
public interface MyFeignClient {
@GetMapping(value = "/path", consumes = "application/json")
Result getWithVo(@RequestBody MyVo vo);
}
Controller服务端
推荐使用@ModelAttribute
@GetMapping("/path")
public Result getWithTwoVos(
@ModelAttribute MyVo1 vo1,
@ModelAttribute MyVo2 vo2) {
// 业务逻辑处理
return Result.success();
}
@ModelAttribute 的工作原理
Spring MVC 的 @ModelAttribute 会自动将 URL 查询参数(即 ?key1=value1&key2=value2)绑定到对象的属性上。无论是来自:Feign 客户端(通过 @SpringQueryMap 生成的查询参数)、浏览器页面提交(表单 GET 请求或手动拼接的 URL)、直接访问的 URL(如 <a href="/path?name=xxx"/>) 都会以相同的方式解析,无需额外配置。
浙公网安备 33010602011771号