一文教会你如何简单使用Fegin进行远程服务调用
创始人
2024-05-31 18:51:43
0

文章目录

  • 1、fegin的基本介绍
  • 2、fegin的基本使用步骤
  • 3、项目中的实际运用
  • 4、测试

三连哦
前言

在分布式微服务中,少不了会进行不同服务之间的相互调用,比如A服务要调用B服务中的接口,如何简单方便的实现呢?fegin可以来帮助。

1、fegin的基本介绍

Feign 是 Netflix 开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。

Spring Cloud Feign帮助我们定义和实现依赖服务接口的定义。在Spring Cloud feign的实现下,只需要创建一个接口并用注解方式配置它,即可完成服务提供方的接口绑定,简化了在使用Spring Cloud Ribbon时自行封装服务调用客户端的开发量。

Spring Cloud对Feign进行了增强,使Feign支持了Spring MVC注解,并整合了Ribbon和Eureka,从而让Feign的使用更加方便。

简单来说就是调用别的远程服务的接口就像调用自己本地接口一样方便。

2、fegin的基本使用步骤

步骤

  • 1、pom文件中引入依赖
  • 2、启动类添加注解
  • 3、创建接口调用三方服务

3、项目中的实际运用

  • 1、在需要使用 feign 发起 http 请求的服务中引入 feign 的依赖
org.springframework.cloudspring-cloud-starter-openfeign

  • 2、在服务的启动类中添加注解 @EnableFeignClients,开启Feign的功能
/**
*要指定远程调用功能放的基础包
*com.atguigu.gulimall.product.feign"对应的是所有feign类所存在的文件路径,表示扫描该路径下所以含有@FeignClient注解的类
*/
@EnableFeignClients(basePackages = "com.atguigu.gulimall.product.feign")
@EnableDiscoveryClient
@MapperScan("com.atguigu.gulimall.product.dao")
@SpringBootApplication
public class GulimallProductApplication {public static void main(String[] args) {SpringApplication.run(GulimallProductApplication.class, args);}}
  • 3、编写一个接口,接口告诉springcloud这个接口需要调用远程服务
@FeignClient("gulimall-coupon")
public interface CouponFeignService {/*** 1、CouponFeignService.saveSpuBounds(spuBoundTo);*      1)、@RequestBody将这个对象转为json。*      2)、找到gulimall-coupon服务,给/coupon/spubounds/save发送请求。*          将上一步转的json放在请求体位置,发送请求;*      3)、对方服务收到请求。请求体里有json数据。*          (@RequestBody SpuBoundsEntity spuBounds);将请求体的json转为SpuBoundsEntity;* 只要json数据模型是兼容的。双方服务无需使用同一个to* @param spuBoundTo* @return*/@PostMapping("/coupon/spubounds/save")R saveSpuBounds(@RequestBody SpuBoundTo spuBoundTo);}
  • 4、具体业务中调用
        //5、保存spu的积分信息;gulimall_sms->sms_spu_boundsBounds bounds = vo.getBounds();SpuBoundTo spuBoundTo = new SpuBoundTo();BeanUtils.copyProperties(bounds,spuBoundTo);spuBoundTo.setSpuId(infoEntity.getId());R r = couponFeignService.saveSpuBounds(spuBoundTo);if(r.getCode() != 0){log.error("远程保存spu积分信息失败");}
  • 5、远程服务

在这里插入图片描述

4、测试

通过debug模式运行,可以看到调用远程服务后,这里返回了处理的结果,说明调用远程服务成功。

在这里插入图片描述

在另外一个服务的控制台下,这里打印出相应的信息,说明改服务被调用了

在这里插入图片描述

相关内容

热门资讯

雨林木风系统怎么用-探索神秘酷... 嘿,亲爱的数字探险家们,今天咱们聊聊那个神秘又酷炫的“雨林木风系统”!这玩意儿,听起来就像是电影《侏...
朝阳医院电话预约体验:过程曲折... 说到朝阳医院的电话预约,我这心里可真是五味杂陈啊!每次想要预约个专家号,那电话打得我手指都快断了,听...
rtk测量仪器工作原理-RTK... 大家好呀!今天我要带大家一起走进一个超级炫酷的世界——RTK测量仪器的工作原理!这可不是一般的仪器哦...
linux桌面环境比较-眼花缭... 大家好!今天咱们就来聊聊那些让人眼花缭乱的Linux桌面环境。我得说,选择一个合适的桌面环境,简直就...
老年人肺气肿感染-年迈肺气肿患... 在这个世界上,每个生命都在用自己的方式呼吸着。但对于我,一个年迈的肺气肿患者而言,每一次呼吸都像是在...
克罗恩打类克能治愈吗-克罗恩病... 大家好,我是一个深受克罗恩病折磨的患者。每当肚子里的痛楚如潮水般涌来,我都会问自己,这种痛苦真的有尽...
帝国cms72商城模板-帝国 ... 大家好,我是小杰,一个对网页设计充满激情的小伙子。今天,我要和大家聊聊我最近疯狂迷恋的帝国CMS72...
bootps-Bootps:连... 哎呀,说到Bootps,这可不是什么高大上的技术术语,它其实是网络启动协议的一种,但今天我不是来给你...
微软正版下载:支持创新,选择正... 嘿,大家好!今天咱们聊聊“微软正版下载”这个话题。说到微软,你可能立马想到那些高大上的软件,像是Of...
mapinfo 加载在线地图-... 哎呀,今天说说我在用MapInfo加载在线地图时的心情吧,那真是一场接着一场的惊喜和失望交替上演的戏...
海尔阿里四代电视:智能终端、超... 嘿,朋友们,你们有没有想过,家里那台老电视还能有多大的变化?让我告诉你们,海尔阿里四代电视,简直是家...
breeze什么牌子-Bree... 哎呀,说到Breeze这个牌子,我的心就忍不住跳跃起来!这可不是什么普通的小品牌,它简直就是夏日的代...
ubuntu 1404关闭3d... 哎呀,说到Ubuntu14.04关闭3D这个事儿,我的心啊,就像是被冰冷的代码给冻住了。你知道的,U...
龙腾数据恢复注册码-电脑崩溃重... 哎呀,天哪!我的电脑突然崩溃了,所有的重要文件都打不开了!我现在就像热锅上的蚂蚁,急得团团转。听说有...
克罗恩治疗方法-与克罗恩病斗争... 大家好,我是一个与克罗恩病斗争多年的患者。今天,我想和大家聊聊克罗恩病的治疗方法,虽然这个话题听起来...
迅龙硬盘数据恢复:拯救误删文件... 哎呀,说到这个迅龙硬盘数据恢复,我的心就扑通扑通跳个不停!你知道吗,有天我一不小心,把硬盘里的那些宝...
手机绿云如何夜审-手机里的绿云... 手机成了我们形影不离的伙伴,但你知道吗?当夜深人静,月色如水,手机里的绿云,就像夜行的幽灵,悄无声息...
朝阳医院西院体检中心:体验温馨... 嘿,朋友们,今天我要给你们讲讲我在朝阳医院西院体检中心的那点小确幸。你知道的,体检这事儿,说起来总是...
win10百度贴吧-Win10... 哎呀,说到在Win10上用百度贴吧,我这心情就五味杂陈啊!首先得说,Win10系统确实挺酷炫的,界面...
libeay32.dll修复工... 哎呀,说到这个libeay32.dll文件,真是让人头疼得不行!你是不是也遇到过打开某个软件或者游戏...