博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小D课堂 - 新版本微服务springcloud+Docker教程_4-05 微服务调用方式之feign 实战 订单调用商品服务...
阅读量:4324 次
发布时间:2019-06-06

本文共 1317 字,大约阅读时间需要 4 分钟。

笔记

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教程_3-05 服务注册和发现Eureka Server搭建实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-06 服务注册和发现之Eureka Client搭建商品服务实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_3-07 Eureka服务注册中心配置控制台问题处理...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-01 常用的服务间调用方式讲解
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-02 微服务调用方式之ribbon实战 订单调用商品服务...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-03 高级篇幅之Ribbon负载均衡源码分析实战...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-06 Feign核心源码解读和服务调用方式ribbon和Feign选择...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_4-05 微服务调用方式之feign 实战 订单调用商品服务...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-02 Netflix开源组件断路器
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-01分布式核心知识之熔断、降级
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-04 feign结合hystrix断路器开发实战下...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-03 feign结合hystrix断路器开发实战上...
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_6-01 微服务网关介绍和使用场景
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-05熔断降级服务异常报警通知
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_6-03 高级篇幅之zuul常用问题分析
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_5-08 断路器监控仪表参数
查看>>
小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
查看>>
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-1.快速搭建SpringBoot项目,采用Eclipse...
查看>>
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-4.在线教育后台数据库设计...
查看>>
小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-3.热部署在Eclipse和IDE里面的使用...
查看>>