6.远程调用-OpenFeign

news2024/11/14 14:59:48

文章目录

  • 1.OpenFeign介绍
  • 2.OpenFeign开发
  • 3.OpenFeign的参数传递
  • 4.OpenFeign 的最佳实践
    • 4.1继承的方式
    • 4.2抽取的方式
  • 5.服务部署
  • 6.spring全家桶复习

大家好,我是晓星航。今天为大家带来的是 远程调用-OpenFeign 相关的讲解!😀

1.OpenFeign介绍

因为Feign的停更维护,我们使用的历来是spring-cloud-starter-openfeign

OpenFeign是Spring Cloud 在 Feign的基础上支持了SpringMVC的注解,如@RequesMapping等等。OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。

2.OpenFeign开发

1.引入依赖

QQ_1721889271330

在订单服务中引入我们OpenFeign的依赖

2.通过开启,开启Feign的功能

QQ_1721889427614

再启动类中写入 @EnableFeignClients 开启Feign的功能

3.编写客户端

QQ_1721890010137

QQ_1721891785858

下面为接口单独建类写法:

QQ_1721890134596

value 参数指定服务名称的路径,用于拼接在服务的 URL 后面,path 参数用于指定远程服务的基础路径(Base Path)。

QQ_1721890030865

因为我们这里要写很多api接口,因此我们便写一个api总接口直接继承一下避免多次重复的写

4.修改远程调用

QQ_1721890350028

OrderService 类通过调用 ProductApi 接口来获取订单信息中对应的产品信息

第一个红圈是将productApi注入进OrderService类中,通过feign来完成远程调用

5.测试

3.OpenFeign的参数传递

1.传递单个参数

QQ_1721892016336

QQ_1721892313909

2.传递多个参数

QQ_1721892820725

3.传递对象

QQ_1721892831518

4.传递JSON

QQ_1721892836615

QQ_1721892375635

1.服务端需要提供相应的接口

QQ_1721892566321

2.Feign客户端声明

QQ_1721892438217

3.测试: 客户端通过Feign客户端发起远程调用

QQ_1721892725115

QQ_1721892787929

4.OpenFeign 的最佳实践

4.1继承的方式

QQ_1721893710614

新建一个文件夹来存放我们所有接口

QQ_1721893770823

在注解中引入两个包

QQ_1721893933063

QQ_1721893586620

QQ_1721893606461

4.2抽取的方式

1.完成抽取

QQ_1721898885191

抽取的模块由服务的提供方来写

QQ_1721898863146

QQ_1721898826582

2.打包 install

QQ_1721898791865

3.启动服务端

QQ_1721899032486

4.服务调用方, 引入抽取出来的模块

5.服务部署

1.确认配置

QQ_1721899353952

确认文件配置是否正常即可

2.打包, 上传包

QQ_1721899558014

3.启动服务

参考上篇文章 - Nacos

4.测试

QQ_1721899735642

6.spring全家桶复习

  1. Spring IoC(Inversion of Control,控制反转)
    • 是 Spring 框架的核心概念之一,它的主要作用是管理和组织应用程序中的组件(Bean)。具体来说,Spring IoC 容器负责实例化、配置和组装这些 Bean,以及管理它们的整个生命周期。
  2. Spring AOP(Aspect-Oriented Programming,面向切面编程)
    • Spring AOP 提供了一种通过预编译方式和运行期间动态代理实现横切关注点的方法。它允许您定义跨多个对象的切面,并将它们模块化以支持更好的代码复用性和可维护性。
  3. Spring JDBC
    • Spring JDBC 简化了通过 JDBC 访问数据库的代码编写。它提供了模板类(如 JdbcTemplate)和异常处理机制,帮助开发者编写更少的代码来执行数据库操作。
  4. Spring ORM(Object-Relational Mapping,对象关系映射)
    • Spring ORM 模块通过提供集成不同 ORM 框架(如 Hibernate、JPA 等)的支持,简化了持久层的开发。它使得通过对象而非 SQL 语句来操作数据库变得更加简单和灵活。
  5. Spring MVC(Model-View-Controller)
    • Spring MVC 是一个基于 Java 的实现了 MVC 设计模式的Web框架。它提供了一个灵活的方法来开发具有清晰分层结构的Web应用程序,并且可以与其他 Spring 模块无缝集成。
  6. Spring Security
    • Spring Security 是一个强大且高度可定制的身份验证和访问控制框架,用于保护Spring应用程序的安全性。
  7. Spring Test
    • Spring Test 模块支持对 Spring 应用程序进行单元测试和集成测试。它提供了一组工具和类,帮助开发者编写和执行测试,以确保应用程序的质量和稳定性。
  8. Spring Boot
    • Spring Boot 是一个基于 Spring 的开发和部署的简化模型,通过自动化配置和约定优于配置的方式,减少了开发者在配置和部署上的工作量,使得快速开发和微服务架构更加容易实现。
  9. Spring Cloud
    • Spring Cloud 是一组工具和框架,用于构建分布式系统中的各种模式,如配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁等。

基于 Spring 的开发和部署的简化模型,通过自动化配置和约定优于配置的方式,减少了开发者在配置和部署上的工作量,使得快速开发和微服务架构更加容易实现。

感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘

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

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

相关文章

养老院管理系统设计与实现

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装养老院管理系统软件来发挥其高效地信息处理的作用&#xff…

[问题] allegro 绑定3D 无法显示3D图像-已解决

找到原因了: 文件路径有中文,所以识别不到step文件。

C语言 | Leetcode C语言题解之第377题组合总和IV

题目&#xff1a; 题解&#xff1a; int combinationSum4(int* nums, int numsSize, int target) {int dp[target 1];memset(dp, 0, sizeof(dp));dp[0] 1;for (int i 1; i < target; i) {for (int j 0; j < numsSize; j) {if (nums[j] < i && dp[i - num…

数据结构-符号表

1.概述 符号表最主要的目的就是将一个键和一个值联系起来&#xff0c;符号表能够将存储的数据元素是一个键和一个值共同组成的键值对数据&#xff0c;我们可以根据键来查找对应的值。 符号表中&#xff0c;键具有唯一性,符号表在实际生活中的使用场景是非常广泛的&#xff0c;见…

扮猪吃老虎的电脑机箱,不到300块的追风者XT523静音版开箱赏析

扮猪吃老虎的电脑机箱&#xff0c;不到300块的追风者XT523静音版开箱赏析 哈喽小伙伴们好&#xff0c;我是Stark-C~ 最近办公室的老大需要我帮忙挑选一款电脑机箱&#xff0c;除了可以日常办公&#xff0c;闲暇之余还需要用这台电脑打打游戏&#xff0c;要求是噪音越小越好且…

Cesium加载高速公路样式线图层和利用CSS撰写高速公路样式

在ArcGIS软件中是将多个线图层叠加&#xff08;宽的叠加在下方防止遮盖其他图层&#xff09; 依照此想法在Cesium中加载高速公路线图层时 在 Cesium 中&#xff0c;直接设置线&#xff08;如 Polyline&#xff09;的样式为“高速公路样式”并不直接支持&#xff0c;因为 Cesiu…

奥yùn会节目很精彩!想看直播?

有没有可以在电视上安装&#xff0c;然后看直播的软件呢&#xff1f;答案肯定的。 资源在这&#xff08;点我&#xff09; 嗯&#xff0c;废话不多说了。 正文开始 安装教程 保证文件的后缀名为.apk 然后把它复制到U盘根目录&#xff0c;再接入到电视上。 在电视上用文件管…

解决windterm莫名其妙输入ctrl+c的问题

原来是钉钉在监控你的鼠标&#xff0c;取消设置即可 来源&#xff1a;https://github.com/kingToolbox/WindTerm/issues/2296

每一次逾越都是不可替代的成长![我是如何克服编程学习过程中的挫折感】

成长路上不孤单&#x1f60a;【14后&#xff0c;C爱好者&#xff0c;持续分享所学&#xff0c;如有需要欢迎收藏转发&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#xff01;&#xff01;&#xff01;&#xff01;&#xff…

logging | 项目开发中日志模块logging在整个工程中的应用

日志模块 日志介绍1. logging使用场景设置级别 2. 实际logging使用 - 学习版2.1 终端输出StreamHandler2.2 日志文件中输出FileHandler2.3 同时写入终端和文件2.4 .Formatter参数语句 3. 封装logging模块 - 实战版 ⭐3.1 配置config文件夹下project_config.py文件time模块 3.2 …

Linux日志-btmp日志

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 Linux进阶部分又分了很多小的部分,我们刚讲完了Linux基础软件&#xff0c;下面是Linux日志。Linux 系统中的日志是记录系统活…

正向代理、反向代理

代理作为客户端和服务器的中间层&#xff0c;按照不同的维度可以分为不同的类型。 一种常见的划分方式是将代理分为正向代理&#xff08;forward proxy&#xff09;与反向代理&#xff08;reverse proxy&#xff09;。 根据实现代理的方式可以分为 HTTP 隧道代理、MITM 代理、…

ubuntu安装dnsmasq 做dns服务器

本文介绍在ubuntn22.04上安装dnsmasq用做自定义域名服务器&#xff0c;可以在公网上使用。 目标 准备两台不是同一个局域网内的服务器&#xff0c;其中A服务器是ubuntu22.04。在A上安装dnsmasq dns服务器&#xff0c;配置自定义域名&#xff0c;然后在B服务器上配置A做为dns服…

使用session实现单用户多端登录限制

基本流程&#xff1a; 首先获得当前浏览器访问服务器的session&#xff0c;然后根据用户的信息&#xff08;如id等&#xff09;在redis中查找&#xff0c;如果找到&#xff0c;并且和查找对应的session不同&#xff0c;则可以判断已经有其他设备登录过了&#xff0c;这个时候就…

Andorid 如何查看某个.so库的依赖

Android 手机中&#xff0c;如何查看其中某个.so 库依赖了其它哪些库&#xff1f;1.方法&#xff1a;使用android 手机中的readelf 命令.。2. 操作步骤&#xff1a;如查看libdolphin.so 的的依赖。 &#xff08;1&#xff09;adb shell 进入手机&#xff0c;进入libdolphin.so…

C++学习笔记----6、内存管理(一)---- 使用动态内存(2)

2.2、我的好朋友malloc怎么样了&#xff1f; 如果你是一个C程序员&#xff0c;对啦&#xff0c;我就是&#xff0c;你可能会想&#xff0c;malloc()函数怎么样了。在C语言中&#xff0c;malloc()用于分配一定数量的内存字节。总的来讲&#xff0c;使用malloc()简单直接。在C中m…

传统CV算法——图像特征算法之角点检测算法

文章目录 2. 角点检测2.1 角点概述2.1.1 概念2.1.2 角点的特点2.1.3 角点的检测2.1.4 角点的应用 2.2 角点检测算法2.2.1 Harris 角点2.2.1.1 Harris 角点介绍2.2.1.2 Harris计算流程1. 图像梯度2. 结构张量3. Harris响应函数4. 非极大值抑制5. 阈值化 2.2.1.3 Harris性质1. 旋…

《PCI Express体系结构导读》随记 —— 第II篇 第7章 PCIe总线的数据链路层与物理层(4)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第II篇 第7章 PCIe总线的数据链路层与物理层&#xff08;3&#xff09; 7.1 数据链路层的组成结构 7.1.1 数据链路层的状态 数据链路层需要通过物理层监控PCIe链路的状态&#xff0c;并维护数据链路层的“控制与…

厂房电气火灾现场勘验要点

0前言 随着我国社会的发展&#xff0c;电气化水平提升&#xff0c;但随之而来的是频繁的电气火灾事故&#xff0c;对生活和生产造成重大危害。电气火灾是最常见的火灾类型&#xff0c;通常由电路短路、电压过高、电阻过大或电路超负荷引起&#xff0c;这些因素都可能导致火花并…

电脑怎么录屏?探索电脑录屏工具,三款高效工具推荐及使用指南

在数字化时代&#xff0c;电脑录屏已成为日常工作和学习中不可或缺的一部分。无论是制作教程、记录会议还是捕捉游戏精彩瞬间&#xff0c;一个好的录屏工具都能让这一切变得简单高效。今天&#xff0c;我们将为您介绍三款备受推崇的录屏软件&#xff1a;Windows自带的步骤记录器…