优化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"/>) 都会以相同的方式解析,无需额外配置。

posted @ 2025-04-26 01:20  明月心~  阅读(38)  评论(0)    收藏  举报