SpringCloud中的openFeign调用服务并传参的过程
一、说明
服务和服务之间通信,不仅仅是调用,往往在调用过程中还伴随着参数传递,接下来重点来看看OpenFeign在调用服务时如何传递参数
二、GET方式调用服务传递参数
1.GET方式调用服务传递参数
在商品服务中加入需要传递参数的服务方法来进行测试
在用户服务中进行调用商品服务中需要传递参数的服务方法进行测试
// 1.商品服务中添加如下方法 @GetMapping("/product/findOne") public Map<String,Object> findOne(String productId){ log.info("商品服务查询商品信息调用成功,当前服务端口:[{}]",port); log.info("当前接收商品信息的id:[{}]",productId); Map<String, Object> map = new HashMap<String,Object>(); map.put("msg","商品服务查询商品信息调用成功,当前服务端口: "+port); map.put("status",true); map.put("productId",productId); return map; }
//2.用户服务中在product客户端中声明方法 @FeignClient("PRODUCTS") public interface ProductClient { @GetMapping("/product/findOne") String findOne(@RequestParam("productId") String productId); }
//3.用户服务中调用并传递参数 //注入客户端对象 @Autowired private ProductClient productClient; @GetMapping("/user/findAllFeignClient") public String findAllFeignClient(){ log.info("通过使用OpenFeign组件调用商品服务..."); String msg = productClient.findAll(); return msg; }
三、post方式调用服务传递参数
1.post方式调用服务传递参数
- 在商品服务中加入需要传递参数的服务方法来进行测试
- 在用户服务中进行调用商品服务中需要传递参数的服务方法进行测试
//1.商品服务加入post方式请求并接受name @PostMapping("/product/save") public Map<String,Object> save(String name){ log.info("商品服务保存商品调用成功,当前服务端口:[{}]",port); log.info("当前接收商品名称:[{}]",name); Map<String, Object> map = new HashMap<String,Object>(); map.put("msg","商品服务查询商品信息调用成功,当前服务端口: "+port); map.put("status",true); map.put("name",name); return map; }
//2.用户服务中在product客户端中声明方法 //value属性用来指定:调用服务名称 @FeignClient("PRODUCTS") public interface ProductClient { @PostMapping("/product/save") String save(@RequestParam("name") String name); }
//3.用户服务中调用并传递参数 @Autowired private ProductClient productClient; @GetMapping("/user/save") public String save(String productName){ log.info("接收到的商品信息名称:[{}]",productName); String save = productClient.save(productName); log.info("调用成功返回结果: "+save); return save; }
2.传递对象类型参数
- 商品服务定义对象
- 商品服务定义对象接收方法
- 用户服务调用商品服务定义对象参数方法进行参数传递
//1.商品服务定义对象 @Data public class Product { private Integer id; private String name; private Date bir; }
//2.商品服务定义接收对象的方法 @PostMapping("/product/saveProduct") public Map<String,Object> saveProduct(@RequestBody Product product){ log.info("商品服务保存商品信息调用成功,当前服务端口:[{}]",port); log.info("当前接收商品名称:[{}]",product); Map<String, Object> map = new HashMap<String,Object>(); map.put("msg","商品服务查询商品信息调用成功,当前服务端口: "+port); map.put("status",true); map.put("product",product); return map; }
//3.将商品对象复制到用户服务中 //4.用户服务中在product客户端中声明方法 @FeignClient("PRODUCTS") public interface ProductClient { @PostMapping("/product/saveProduct") String saveProduct(@RequestBody Product product); }
// 4.在用户服务中调用保存商品信息服务 //注入客户端对象 @Autowired private ProductClient productClient; @GetMapping("/user/saveProduct") public String saveProduct(Product product){ log.info("接收到的商品信息:[{}]",product); String save = productClient.saveProduct(product); log.info("调用成功返回结果: "+save); return save; }
到此这篇关于SpringCloud之openFeign调用服务并传参的文章就介绍到这了,更多相关SpringCloud openFeign调用服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
IDEA:Error running,Command line is too&n
这篇文章主要介绍了IDEA:Error running,Command line is too long.解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-07-07IDEA报错:Unable to save settings Failed to save settings
这篇文章主要介绍了IDEA报错:Unable to save settings Failed to save settings的相关知识,本文给大家分享问题原因及解决方案,需要的朋友可以参考下2020-09-09解决mybatis-generator生成器添加类注释方法无效的问题
这篇文章主要介绍了解决mybatis-generator生成器添加类注释方法无效的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-07-07由ArrayList来深入理解Java中的fail-fast机制
fail-fast俗称快速失败,是在多线程进行迭代操作时产生冲突的一种异常抛出机制,下面我们就由ArrayList来深入理解Java中的fail-fast机制.2016-05-05
最新评论