关于微服务Feign调用的一点思考

本文探讨了微服务间使用Feign调用时的最佳实践,建议将传入参数类型统一为String以避免数据丢失,并提升性能。通过示例展示了如何在服务端和调用端实现这一方案,同时推荐使用Alibaba的fastJson进行JSON解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于微服务Feign调用的一点思考

1 网络传输入参类型选型

最好用String作为传参类型,因为这样的话,数据不会丢失(接受参数类似)

​ 在微服务调用中,如果请求的服务类型为对象,我们可能需要使用@SpringQueryMap这样的注解来实现类型于@ResponseBody来接受一个对象类型的参数。

​ 现在,我们把对象/集合/数组类型的转为String类型,在网络传输中它的数据不会丢失,而且性能应该不错

服务端:

  @RequestMapping("getAll")
  public Result selectAllt(String startProvinceIds,
                           String endProvinceIds,
                           String imgJson, 
                           String reportAddressJson
                         );

调用端:

 JSONObject imgJSon =JSONObject.parseObject(“imgJSon”)
 imgJSon.getXXX(“key”)

在这里,推荐大家配合使用Alibaba的fastJson

自己常用的API:

1 JsonObject

本质上是个Map<String, Object>,封装了一系列API供我们使用。

例如:parseXXX:相关的API可以把String类型的参数转换为指定Java类型的对象,非常方便

在这里插入图片描述

2 JSONArray
本质是个List 泛型为Object,可以把前端传递的数组类型的字符串转换为指定泛型的List集合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值