Spring MVC & Feign Client 传参形式以及 @RequestBody 不能继承的问题

精选30+云产品,助力企业轻松上云!>>> hot3.png

传参的几种形式
  • @RequestParam(value="userName") String userName 单个属性,适用于基本类型及其包装类型和String的传递
  • @RequestParam Map<String, Object> mapParams 通用型方式,通过 JDK 内置对象 Map,接收所有键值对的参数
  • @RequestBody User user 将整个 json 请求体包裹起来,作为 raw 传值;Content-Type: application/json
  • @ModelAttribute User user 将所有键值对映射到自定义对象的属性上,有点类似于@RequestParam Map(注意对象为空和对象的所有属性为空的区分)
  • 支持复杂参数类型以及多参数的传递,如: rest-api 接口定义:
    @GetMapping(value = "/rpc/erp/itemGift/page")
    ItemMapResponse giftList(@RequestParam("searchWord") String searchWord, @RequestParam("restPageJson") String restPageJson, @RequestBody ItemSupplierSearchRequest itemSupplierSearchRequest);

接口实现类:

    @Override
    public ItemMapResponse giftList(String searchWord, String restPageJson, @RequestBody ItemSupplierSearchRequest itemSupplierSearchRequest) {
        logger.info("查询赠品商品列表入参:restPageJsonc={},searchWord={},restItemSearchDTO={}", restPageJson, searchWord,
                JSONObject.toJSONString(itemSupplierSearchRequest));
        ...
    }

用 cURL 请求(或者用 Charles 抓包拷贝 cURL 地址):

curl --location --request GET 'http://localhost:9012/rpc/erp/itemGift/page?restPageJson=%7B%22pageNo%22:1,%22pageSize%22:10%7D&searchWord=%E8%B5%A0%E5%93%81' \
--header 'Content-Type: application/json' \
--data-raw '{"title":"测试"}'
解决 @RequestBody 不能继承的问题
参考
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值