小D课堂 - 新版本微服务springcloud+Docker教程_4-05 微服务调用方式之feign 实战 订单调用商品服务...
笔记
5、微服务调用方式之feign 实战 订单调用商品服务
简介:改造电商项目 订单服务 调用商品服务获取商品信息
Feign: 伪RPC客户端(本质还是用http)
官方文档: https://cloud.spring.io/spring-cloud-openfeign/
1、使用feign步骤讲解(新旧版本依赖名称不一样)
加入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
启动类增加@EnableFeignClients
增加一个接口 并@FeignClient(name="product-service")
2、编码实战
3、注意点:
1、路径
2、Http方法必须对应
3、使用requestBody,应该使用@PostMapping
4、多个参数的时候,通过@RequestParam("id") int id)方式调用
开始
feign是一个发http请求的客户端。从order service发送请求到Product service
建议大家去看官方文档:官方文档: https://cloud.spring.io/spring-cloud-openfeign/
首先需要加依赖的包
启动类加注解
下面ribbon的方法可删可不删。这里先保留着
service下新增ProductClient。他的类形式Interface接口类
增加注解。里面的name的值就是调用的服务的名称
product的服务启动两个一个 8772 一个8773.
看到注册中心启动了两个服务
调用client
调用client里面的方法。获取到的是json字符串。
需要一个json工具类。新建utils包然后新建JsonUtils类
spring默认的是用jackson这个包解析json。注意这些都是jackson这个包下的。注意这里定义的ObjectMapper用了final修饰
解析json的字符串返回一个JsonNode对象
在这里我们断点调试一下
请求到的数据
JsonNode的数据格式
在jsonNode里面获取json属性的值,分别get name 的值和get 里面的price的值
发送请求
注意事项
这里也可以使用RequestMapping不过要指定value和method
多个参数的时候,通过@RequestParam("id") int id)方式调用。
参数一定要和调用的product的方法的参数保持一致
如果product的服务参数使用了requestBody那么orderService上面的注解一定要使用postMapping了。因为requestBody接收的就是post过来的参数。这里必须用PostMapping来修饰了
复杂的调用可以百度一下找对应的文章看。
转载于:https://www.cnblogs.com/wangjunwei/p/11445843.html
小D课堂 - 新版本微服务springcloud+Docker教程_4-05 微服务调用方式之feign 实战 订单调用商品服务...相关推荐
- 小D课堂 - 新版本微服务springcloud+Docker教程_汇总
小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介 小D课堂 - 新版本微服务springcloud+Docker教程_1_02技术选型 小D课堂 - 新版本微服务s ...
- SpringCloud 入门教程(六): 用声明式REST客户端Feign调用远端HTTP服务
首先简单解释一下什么是声明式实现? 要做一件事, 需要知道三个要素,where, what, how.即在哪里( where)用什么办法(how)做什么(what).什么时候做(when)我们纳入ho ...
- [转]微服务与Docker
在Docker上运行微服务 在过去的两年里,微服务架构已经成了非常热门的名词,它出现在很多论坛.视频.演讲中.作为一种更灵活.可靠.开放的架构,其应用实践也越来越多.近日,来自七牛云存储.DaoClo ...
- 中间件和微服务,Docker以及原生云架构的关系
IT世界的技术更新非常迅速.一年前我曾写过一篇关于:微服务是否是企业服务总线和其他中间件的死亡魔法.本文章是之前文章的后续以及关于微服务.容器和原生云架构的中间件关系讨论的更新.各种规模的企业正在以令 ...
- springcloudalibaba架构(31):SpringCloud实现用户信息在微服务之间传递(Feign和Dubbo)
文章目录 前言 第一节 微服务间用户信息传递问题 第二节 解决思路 第三节 实践操作(基于Feign) 1. 调用链路说明 2. shop-common改造 3. 开启注解 4. 启动服务器测试 第四 ...
- spring cloud 微服务调用--ribbon和feign调用
这里介绍ribbon和feign调用两种通信服务调用方式,同时介绍如何引入第三方服务调用.案例包括了ribbon负载均衡和hystrix熔断--服务降级的处理,以及feign声明式服务调用.例子包括s ...
- 从 0 搭建 Spring Cloud 服务,完整教程!
微信搜索逆锋起笔关注后回复编程pdf 领取编程大佬们所推荐的 23 种编程资料! 一.微服务基础 1.什么是 SpringCloud? SpringCloud 官网:https://spring.io ...
- SpringCloud详细教程(上)
[订阅专栏合集,关注公众号,作者所有付费文章都能看(持续更新)] 推荐[SpringCloud教程]https://blog.csdn.net/hellozpc/article/details/836 ...
- 【谷粒商城高级篇】商品服务 商品上架
谷粒商城笔记合集 分布式基础篇 分布式高级篇 高可用集群篇 ===简介&环境搭建=== ===Elasticsearch=== 项目简介与分布式概念(第一.二章) Elasticsearch: ...
- 海量数据大课学习笔记(12)-账号微服务-阿里云OSS接入实战-小滴课堂
文章目录 前言 第1集 分布式文件存储业界常见解决方案介绍 第2集 阿里云OSS分布式对象存储介绍开通 第3集 权限知识 RBAC-ACL模式应用之阿里云RAM访问控制 第4集 阿里云OSS客户端SD ...
最新文章
- 产品设计体会(1011)少做就是多做
- 润乾集算报表优化应用结构之混合数据源
- 正则表达式表示任意字符
- python免费试听-线上儿童编程免费试听-品质保障
- Servlet中乱码问题
- java如何爬取304_HTTP 304错误的详细讲解
- 25道Spring框架面试题
- 常见前端数据格式转换
- JS实现的展开隐藏效果
- 输入焦点默认指示在编辑框上
- vs2017创建外部css,webpack - 从生成的Microsoft SPA模板VS2017 webpack中删除特定供应商css - 堆栈内存溢出...
- 测试人必备实用技能:写出一份好的Bug报告
- leetcode讲解--513. Find Bottom Left Tree Value
- Docker 容器与宿主机网段冲突导致网络无法 ping 通的解决方案
- Get不到AI的点?一定要看《程序员的AI书:从代码开始》!
- python测量 检测软件_pytest首页、文档和下载 - Python 测试工具 - OSCHINA - 中文开源技术交流社区...
- 中易云 易云系统 电镀废水处理远程监控解决方案
- Android App开发实战之实现微信记账本(附源码 超详细必看)
- 网络劫持问题都应该如何解决?
- python如何安装keras和tensorflow
热门文章
- 拓端tecdat|R语言GARCH模型对股市sp500收益率bootstrap、滚动估计预测VaR、拟合诊断和蒙特卡罗模拟可视化
- 拓端tecdat|在Python和R中使用交叉验证方法提高模型性能
- c语言文本格式自动对齐,c语言文件读取原始数据是1、2列是按相同的一起排列命名为Yi- 爱问知识人...
- (5) 学习笔记_numpy
- 《SpringBoot实战》笔记3
- 【标注图像】windows下使用labelImg
- 计算机设备的存放,哪一种设备不能用于长期保存计算机数据
- 从零开始进行Adadelta的梯度下降
- Python从头开始的演变策略
- Java并发工具类之CountDownLatch