6.远程调用-OpenFeign

2024-09-02 23:28
文章标签 调用 远程 openfeign

本文主要是介绍6.远程调用-OpenFeign,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

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

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

这篇关于6.远程调用-OpenFeign的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

C/C++和OpenCV实现调用摄像头

《C/C++和OpenCV实现调用摄像头》本文主要介绍了C/C++和OpenCV实现调用摄像头,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录准备工作1. 打开摄像头2. 读取视频帧3. 显示视频帧4. 释放资源5. 获取和设置摄像头属性

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

使用@Cacheable注解Redis时Redis宕机或其他原因连不上继续调用原方法的解决方案

《使用@Cacheable注解Redis时Redis宕机或其他原因连不上继续调用原方法的解决方案》在SpringBoot应用中,我们经常使用​​@Cacheable​​注解来缓存数据,以提高应用的性能... 目录@Cacheable注解Redis时,Redis宕机或其他原因连不上,继续调用原方法的解决方案1

C#实现访问远程硬盘的图文教程

《C#实现访问远程硬盘的图文教程》在现实场景中,我们经常用到远程桌面功能,而在某些场景下,我们需要使用类似的远程硬盘功能,这样能非常方便地操作对方电脑磁盘的目录、以及传送文件,这次我们将给出一个完整的... 目录引言一. 远程硬盘功能展示二. 远程硬盘代码实现1. 底层业务通信实现2. UI 实现三. De

C#通过进程调用外部应用的实现示例

《C#通过进程调用外部应用的实现示例》本文主要介绍了C#通过进程调用外部应用的实现示例,以WINFORM应用程序为例,在C#应用程序中调用PYTHON程序,具有一定的参考价值,感兴趣的可以了解一下... 目录窗口程序类进程信息类 系统设置类 以WINFORM应用程序为例,在C#应用程序中调用python程序

Java调用Python的四种方法小结

《Java调用Python的四种方法小结》在现代开发中,结合不同编程语言的优势往往能达到事半功倍的效果,本文将详细介绍四种在Java中调用Python的方法,并推荐一种最常用且实用的方法,希望对大家有... 目录一、在Java类中直接执行python语句二、在Java中直接调用Python脚本三、使用Run

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

C#如何调用C++库

《C#如何调用C++库》:本文主要介绍C#如何调用C++库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录方法一:使用P/Invoke1. 导出C++函数2. 定义P/Invoke签名3. 调用C++函数方法二:使用C++/CLI作为桥接1. 创建C++/CL

SpringBoot整合OpenFeign的完整指南

《SpringBoot整合OpenFeign的完整指南》OpenFeign是由Netflix开发的一个声明式Web服务客户端,它使得编写HTTP客户端变得更加简单,本文为大家介绍了SpringBoot... 目录什么是OpenFeign环境准备创建 Spring Boot 项目添加依赖启用 OpenFeig

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络