本篇文章小编给大家分享一下Feign接口方法返回值设置方式代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
一、介绍
随着微服务的广泛应用,越来越多的企业都会使用微服务进行项目开发,在各个服务之间需要通过feign来进行通信,所以在feign调用接口中方法会接受其他服务接口不同类型返回值。
二、返回值设置
1、依据被调用服务接口设置相同返回类型
介绍:微服务A接口getUser 返回List
特点:返回类型一一对应,在调用时不需要进行转化直接拿来就可以用。
缺点:扩展性不好,维护性不加。
解释:在目前springboot开发中,接口一般都会返回json类型数据(也就是使用@restController或者使用@ResponseBody注解修饰),就算是对象或者对象集合也是一样的,或者其他自己封装的返回对象。如果有许多不同的返回对象,当这些返回对象在A服务做了修改相应的在B服务的feign接口处也要做修改,相当麻烦且不符合java面向接口编程思想。
2、全部设置为String
介绍:微服务A接口只要被@restController或者使用@ResponseBody注解修饰我统统在微服务Bfeign接口使用String来进行接受。
特点:通过String来接受返回参数,格式一致。
缺点:后面调用需要转换。
代码介绍:
// 微服务A controller 已经使用@restController修饰 @PostMapping(value="/getAllQuestionBank",produces = MediaType.APPLICATION_JSON_UTF8_VALUE) public ListgetAllQuestionBank(){ return baseinfoQuestionMange.getAllQuestionBank(); } // 微服务B feign接口 使用String进行接受 @PostMapping(value="/baseinfo/getAllQuestionBank") String getAllQuestionBank(); // 微服务B 当需要调用feign信息时需要强转成List 格式 // 调用微服务获取题库章节信息,该处强制使用try catch进行包裹 String questionBankInfo = baseInfoApi.getAllQuestionBank(); List mysqlQuestionBank = objectMapper.readValue(questionBankInfo,new TypeReference >(){});
只要你导入一下springboot依赖,它默认就给你导入了Jackson jar包
注意事项:使用该方式时需要将ObjectMapper配置到bean容器中。
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔