OpenFeign --学习笔记

什么是OpenFeign?

OpenFeign可以想象成一座连接客户端(服务器)和服务器之间的桥梁。在微服务架构中,各个服务之间像小岛屿一样分布在网络上,它们需要相互通信才能协同工作。但是,这些岛屿之间并没有现成的桥梁,这就需要一种工具来建立联系。

当把项目拆成微服务时,服务之间需要互相调用的时候就很不方便,每个服务都拆成了一个独立的个体,这个时候再想去调用其它服务的话就可以用到OpenFeign,采用在线请求的方式,通过网络而不是再通过本地去调用其它服务。

OpenFeign就像是一个建桥专家。你只需要给它提供一张图纸(即定义一个接口),告诉它两边的岛屿需要什么样的路(即你需要调用的远程服务的方法)。OpenFeign就会自动构建一座桥(实现服务之间的通信)。

当客户端想要调用远程服务的某个功能时,通过这座桥就可以直接发送请求,不再需要亲自游过河(不需要使用复杂的HTTP客户端操作)。简单来说,就好比你给OpenFeign一个购物清单,它会到对面的商店去帮你买东西并带回来。

OpenFeign中的每一次HTTP请求都归结为简单的Java方法调用,让开发者感觉就像是在用本地方法一样,而不必担心服务之间的网络通信细节。换句话说,就是让微服务之间的对话变得简单易懂,像邻里之间的搭话一样自然亲切。

OpenFeign的使用

1、引入依赖

  //先在父类中引入springcloud的依赖<!--openFeign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--负载均衡器--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency>

2、添加注解

在启动类上添加注解,启动OpenFeign功能:

@EnableFeignClients(basePackages = "com.hmall.api.client",defaultConfiguration = DefaultFeignConfig.class) //其中第一个规定了client接口的扫描包,第二个是openfeign的配置类
@MapperScan("com.hmall.cart.mapper")
@SpringBootApplication
public class CartApplication {public static void main(String[] args) {...}
}

3、声明并编写Feign Client接口:

示例:

@FeignClient("cart-service")    //要调用服务的名称,利用nacos得到目标服务地址并访问
public interface CartClient {@DeleteMapping("/carts")    //接口具体编写可以使用mvc的注解void deleteCartItemByIds(@RequestParam("ids") Collection<Long> ids);
}
  • @FeignClient("cart-service") :声明服务名称

  • @DeleteMapping("/items") :声明请求路径和请求方式

  • @RequestParam("ids") Collection<Long> ids :声明请求参数

  • void :返回值类型

4、使用FeignClient

直接注入接口使用就可以了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/849378.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS 系统常用信息查询:CPU、内存、硬盘、系统运行时长等

CentOS 是基于 Red Hat Enterprise Linux&#xff08;RHEL&#xff09;源代码构建的&#xff0c;是一种流行的 Linux 操作系统。在 CentOS 中&#xff0c;我们可以通过一些命令来查询系统的各种常用信息&#xff0c;包括 CPU 使用情况、内存使用情况、硬盘容量、系统运行时长等…

SVNCloud 与 Navicat和IDEA的连接

文章目录 SVNCloud 配置Navicat访问云端数据库与IDEA Java jdbc 的连接 SVNCloud 配置 访问网址&#xff1a;SVN注册账号&#xff0c;进入mysql区域&#xff1a; 数据库管理->创建数据库&#xff0c;输入数据库名称和密码&#xff0c;注意&#xff0c;这里的数据库名称实际…

6、后端项目初始化

打开idea后&#xff0c; New Project &#xff0c;用Maven构建 Spring Boot 项目 点击Next后&#xff1a;先勾选两个基本的依赖&#xff0c;后面再手动添加其它需要的依赖 Spring Web: 表示是一个web应用程序 Lombok&#xff1a;写实体类的时候添加Data注解后就会自动加上g…

Linux网络编程:网络层协议|IP

目录 前言&#xff1a; 1.IP协议 1.1.IP协议格式 1.2.网段划分 1.2.1.知识引入 1.2.2.IP地址划分和子网掩码 1.3.IP地址分类 1.3.1.特殊IP地址 ​编辑 1.3.2.私有IP和公网IP 1.3.3.浅谈NAT技术 1.4.路由 1.4.1.什么是路由 1.4.2.路由表 1.5.网络层数据切片和组装…

MYSQL基础_01_数据库概述

第01章_数据库概述 1. 为什么要使用数据库 持久化(persistence)&#xff1a;把数据保存到可掉电式存储设备中以供之后使用。大多数情况下&#xff0c;特别是企业级应用&#xff0c;数据持久化意味着将内存中的数据保存到硬盘上加以”固化”&#xff0c;而持久化的实现过程大多…

三招搞定“找不到msvcp140.dll无法继续执行代码”问题

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“找不到msvcp140.dll”。那么&#xff0c;这个错误提示到底是什么意思呢&#xff1f;又该如何解决这个问题呢&#xff1f;本文将从以下几个方面进行详细阐述。 一&#xff0c;msvcp140.dll文…

如何轻松将Android同步到 PC? 【6个最适合你的方法!】

尽管许多Android手机都配备了充足的数据存储空间&#xff0c;但将手机中的重要数据备份到电脑上始终是明智之举&#xff0c;以防止数据丢失。那么&#xff0c;如何将Android手机与电脑同步呢&#xff1f;虽然大多数Android用户可能会使用USB线或蓝牙传输文件到PC&#xff0c;但…

水电表自动抄表系统

1.简述 水电表自动抄表系统是一种现代化智能化管理系统&#xff0c;它利用先进的物联网&#xff0c;完成了远程控制、即时、零接触的水电表读值收集&#xff0c;大大提升了公共事业服务项目的效率和准确性。该系统不仅减少了人工抄表工作量&#xff0c;还避免了人为失误&#…

动画制作软件有哪些?最后一款动画渲染必备

探索动画的无限可能&#xff0c;从简单的线条到复杂的三维世界&#xff0c;动画制作软件是艺术家们实现创意的得力助手。无论是手绘动画的细腻笔触&#xff0c;还是3D建模的立体展现&#xff0c;这些软件都极大地丰富了动画制作的手法和表现形式。接下来&#xff0c;我们将介绍…

应急管理大数据指挥中心解决方案(51页PPT)

方案介绍&#xff1a; 本应急管理大数据指挥中心解决方案充分利用了大数据技术的优势&#xff0c;实现了信息的快速收集、分析和决策支持。通过数据融合、协同指挥、智慧化决策和平台建设等方面的努力&#xff0c;提高了应急管理的效率和准确性&#xff0c;为应对各类突发事件…

珠海鸿瑞毛利率持续下滑:核心产品销量大降,偿债能力偏弱

《港湾商业观察》黄懿 日前&#xff0c;珠海市鸿瑞信息技术股份有限公司&#xff08;下称“珠海鸿瑞”&#xff09;收到了北京证券交易所发出的第三轮审核问询函。 此前&#xff0c;2020年11月&#xff0c;珠海鸿瑞曾向深交所报送上市申请。IPO申请文件获受理后&#xff0c;珠…

Java/Golang:活用interface,增加程序扩展性

场景 在paas中间件众多的场景下&#xff0c;做一款用于巡检多个paas组件健康状态的工具。工具的编写需要具备一定的扩展性&#xff0c;便于后续新增某个paas组件巡检的功能。 管理多个paas组件&#xff0c;需要方便扩展新增。 思路 使用面向对象编程思想&#xff0c;首先对…

Maven使用${revision}实现多模块版本统一管理及注意事项

在 Maven 中&#xff0c;确实可以利用 ${revision} 来实现多模块项目的版本统一管理&#xff0c;尤其是在使用一些高级特性如 Maven Release Plugin 或者是在 CI/CD 流程中动态设置版本时。${revision} 是一个特殊的变量&#xff0c;它允许你在构建时动态地使用或设定项目的版本…

普通人如何找到合适的创业方向

作为普通人创业&#xff0c;试错的成本是很高的&#xff0c;哪怕是低成本创业&#xff0c;你起码也得花费大量的时间&#xff0c;所以&#xff0c;在方向的选择上&#xff0c;我们需要谨慎&#xff0c;避免因为方向的选择错误&#xff0c;导致陷入进退两难的地步。 创业方向如何…

程序员的职业素养:坚持学习与团队协作的价值

程序员应该有什么职业素养&#xff1f; 程序员的职业素养&#xff1a;坚持学习与团队协作的价值 程序员这一职业不仅要求高超的技术能力&#xff0c;更需要具备多方面的职业素养。随着技术的发展和行业的变化&#xff0c;程序员不仅要紧跟技术潮流&#xff0c;还要具备良好的…

男士内裤比较好的品牌有哪些?五款物超所值的男款内裤安利

挑选男士内裤时&#xff0c;哪一款更合适呢&#xff1f;这个问题想必让许多人感到困惑。现在市场上的男士内裤种类繁多&#xff0c;确实让人眼花缭乱&#xff0c;不知从何下手。为了帮助大家解决这一难题&#xff0c;今天特地为大家整理了一些选购男士内裤的技巧&#xff0c;并…

怎么样选择合适的erp|如何选择公司erp

在当今高度竞争的商业环境中&#xff0c;企业资源计划(ERP)系统对于企业管理各种业务流程至关重要。选择合适的ERP系统可以极大地提高效率、降低成本并促进增长。然而&#xff0c;市场上有众多的ERP解决方案&#xff0c;如何选择适合您企业的系统是一个复杂的过程。在本篇文章中…

HO-3D 数据集

// 由于非刚体的追踪比较困难&#xff0c;所以看看刚体数据集 HOnnotate: A method for 3D Annotation of Hand and Object Poses // cvpr20https://arxiv.org/abs/1907.01481 https://github.com/shreyashampali/ho3d https://paperswithcode.com/paper/ho-3d-a-mult…

CSS 渐变背景在线生成工具源码

CSS 渐变背景在线生成工具源码 效果图部分源码领取源码下期更新预报 效果图 部分源码 :root {--transition-fast: 0.2s ease;--box-shadow-light: 0 4px 1px rgba(15, 12, 12, 0.349);--box-shadow-heavy: 0px 5px 1px rgb(15, 12, 12);--border-radius-full: 9999px;--border…

uniapp中进度条实现打开页面进度条增长至全布加载完成(转)

在uni-app中&#xff0c;可以通过页面的生命周期函数和API来实现进度条的增长&#xff0c;直至全部加载完成。以下是一个简单的实现示例&#xff1a; <template><view><progress :percent"progressPercent" stroke-width"2" /></view…