首页 > 其他分享 >7.引入Fegin组件----远程调用

7.引入Fegin组件----远程调用

时间:2022-09-01 20:24:43浏览次数:51  
标签:member 调用 Fegin webshop 远程 ---- 组件 org order

1.引入Fegin依赖,提供远程调用功能

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

该依赖在项目创建时,就已经导入了。

2.创建一个远程服务的包,同时编写远程服务接口

比如:webshop-member 服务要调用 webshop-order 接口获取订单详情

  1. 先创建一个专门用来存放调用远程服务的包fegin
  2. 编写接口类
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.webshop.common.utils.R;

@FeignClient("webshop-order")//要调用的服务名
public interface OrderService {
    //要远程调用方法的完整签名
    @RequestMapping("/order/order/info/{id}")
    R info(@PathVariable("id") Long id);
}

这样就告诉了Spring Cloud这个接口的这个方法是要调用哪个服务的哪个接口。

  1. 在 webshop-member 服务的controller类中加入接口,注入新创建的远程接口调用类,调用其方法。
@RestController
@RequestMapping("member/member")
public class MemberController {
    @Autowired
    private MemberService memberService;
    @Autowired
    private OrderService orderService;

    //远程调用接口
    @GetMapping("/order/{id}")
    public R getOrderInfo(@PathVariable Long id) {
        R order = orderService.info(id);
        return R.ok().put("MemberName","webshop").put("orderInfo",order);
    }
    //...
}
  1. 在启动类处,开启远程调用功能
@EnableFeignClients(basePackages = {"org.webshop.member.feign"})  //远程接口包路径
  1. 分别启动服务:webshop-order、webshop-member

  2. 访问:http://localhost:8000/member/member/order/1 (要有数据)

  3. 远程服务调用成功。接下来如果有其他服务需要互相调用,就可参照以上步骤进行编码。

标签:member,调用,Fegin,webshop,远程,----,组件,org,order
From: https://www.cnblogs.com/lailix/p/16647523.html

相关文章

  • Python获取昨天,今天,明天,本周,上周,本月,上月,本季,本年,去年时间
    importdatetimefromdatetimeimporttimedeltanow=datetime.datetime.now()#今天today=now#昨天yesterday=now-timedelta(days=1)#明天tomorrow......
  • 玖章算术受邀参加红杉Talk「创新的复利」科技专场,共同探讨云计算的前世今生
    9月2日,本周五14:00「创新的复利」SequoiaTalk系列论坛,首期直播盛大启动。在第一期科技专场,4位红杉中国资深投资人、8位创新创业者将带我们深入工业软件、机器人、云计算......
  • Docker 映射端口telnet不通
    使用Docker启动端口无法telnethttps://blog.csdn.net/lyd135364/article/details/118369692#echo1>/proc/sys/net/ipv4/ip_forward#sysctl-p......
  • torch.sort 和 torch.argsort
    定义torch.sort(input,dim,descending)torch.argsort(input,dim,descending)用法torch.sort:对输入数据排序,返回两个值,即排序后的数据values和其在原矩阵中的坐标indice......
  • 大家都能看得懂的源码 - 列表页常见 hook 封装
    本文是深入浅出ahooks源码系列文章的第十六篇,该系列已整理成文档-地址。觉得还不错,给个star支持一下哈,Thanks。列表页常见元素对于一些后台管理系统,典型的列表页包括......
  • Flask 学习-33.restful-full 请求参数校验reqparse.RequestParser()
    前言接口请求参数的校验是个大的工作量,参数比较少的时候还可以一个个去判断,参数多了写起来就很麻烦了。reqparse解析请求参数尽管Flask能够简单地访问请求数据(比如......
  • 随堂笔记
    常用的快捷键:*Ctrl+S:快速保存*Alt+/:快速提示*Ctrl+Z:回退到上一步*Ctrl+Y:前进到下一步*Ctrl+Shift+/:快速注释*Ctrl+D:快速删除一行*Ctrl+S......
  • 图论
    多源最短路(在曼哈顿图中)(无例题)(使用BFS,队列):操作的地图要有两个特点:既可以表示结果中所要的最短距离,又能记录这个点是否走过,那就全部memset为一个特殊的数-1(这里一定要......
  • allure+junit5遇到的一些问题
    java+junit5+allure之前引testng,还比较顺利,见上一篇博客,然后testng的注解和junit不一样,感觉junit5更好用一些,所以尝试java+junit5+allure首先看allure官网,需要在pom.xml......
  • 正则表达式在Java中的使用
    正则表达式在Java中的使用不仅限于String类中的match()方法!!!正则中的^与$首先我们来了解这两个符号在正则表达式中的作用:^符号放在表达式头部表示开始匹配$符号放......