广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Spring Cloud OpenFeign实例介绍使用方法
  • 108
分享到

Spring Cloud OpenFeign实例介绍使用方法

2024-04-02 19:04:59 108人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录一. OpenFeign概述二. 使用步骤2.1 feign接口模块2.1.1依赖配置2.1.2编写FeignClient的接口, 并加@FeignCleint 注解2.2 消费

一. OpenFeign概述

OpenFeign 可以将提供者提供的 Restful 服务伪装为接口进行消费,消费者只需使用“ feign 接口 + 注解 ”的方式即可直接调用提供者提供的 Restful 服务,而无需再使用 RestTemplate 。

注意:

  • Feign 只涉及到消费者端,与提供者端无关
  • Feign 仅仅是一个伪客户端,其不会对请求做任何处理。即其与使用 RestTemplate 效果 是一样的
  • Feign 是通过注解实现RESTful 请求的

二. 使用步骤

2.1 feign接口模块

单独将feign接口放在模块中,方便后续为各个服务使用。

2.1.1依赖配置

SpringCloud版本使用

<properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR6</spring-cloud.version>
        <spring-cloud-alibaba.version>2.2.1.RELEASE</spring-cloud-alibaba.version>
    </properties>
    <dependencies>
        <!--fegin-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>

2.1.2编写FeignClient的接口, 并加@FeignCleint 注解

url写死在接口中不方便,可以使用动态参数配置,只需要在配置文件中添加key为feign.client.url的路径。这里使用是单体模式,如果分布式项目中配置多个url管理起来非常费事,就需要升级使用注册中心来解决。

import com.example.vo.DepartVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.WEB.bind.annotation.*;
import java.util.List;
// 注意,接口名与方法名可以随意
// 参数指定了要访问的提供者微服务名称
//@FeignClient(url ="Http://127.0.0.1:8081", value="abcmsc-provider-depart", path = "/provider/depart")
@FeignClient(url ="${feign.client.url}", value="abcmsc-provider-depart", path = "/provider/depart")
public interface DepartService {
    @PostMapping("/save")
    boolean saveDepart(@RequestBody DepartVO depart);
    @DeleteMapping("/del/{id}")
    boolean removeDepartById(@PathVariable("id") int id);
    @PutMapping("/update")
    boolean modifyDepart(@RequestBody DepartVO depart);
    @GetMapping("/get/{id}")
    DepartVO getDepartById(@PathVariable("id") int id);
    @GetMapping("/list")
    List<DepartVO> listAllDeparts();
}

2.2 消费端使用fegin接口

2.2.1在消费者端添加feign接口依赖

2.2.2在消费者端配置文件中添加 feign.client.url

指定服务端的url和端口

2.2.3在消费者端启动类中添加@EnableFeignClients

开启Feign功能:此注解会扫描启动类所在的包及其子包下面@FeignClient标注的接口,将其交给spring容器管理,方便后续使用。

2.2.4在消费者端使用fegin接口

需要在哪里使用接口直接注入后即可使用

import com.example.providerapi.DepartService;
import com.example.vo.DepartVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/consumer/depart")
public class DepartController {
    @Autowired
    private DepartService departService;
    @PostMapping("/save")
    public boolean saveHandle(@RequestBody DepartVO depart) {
 
        return departService.saveDepart(depart);
    }
    @DeleteMapping("/del/{id}")
    public void deleteHandle(@PathVariable("id") int id) {
        departService.removeDepartById(id);
    }
    @PutMapping("/update")
    public void updateHandle(@RequestBody DepartVO depart) {
        departService.modifyDepart(depart);
    }
    @GetMapping("/get/{id}")
    public DepartVO getHandle(@PathVariable("id") int id) {
        return departService.getDepartById(id);
    }
    @GetMapping("/list")
    public List<DepartVO> listHandle() {
        return departService.listAllDeparts();
    }
}

2.3 测试

启动生产者服务,消费者服务

http://localhost:8080/consumer/depart/save

到此这篇关于spring cloud OpenFeign实例介绍使用方法的文章就介绍到这了,更多相关Spring Cloud OpenFeign内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Spring Cloud OpenFeign实例介绍使用方法

本文链接: https://www.lsjlt.com/news/167312.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Spring Cloud OpenFeign实例介绍使用方法
    目录一. OpenFeign概述二. 使用步骤2.1 feign接口模块2.1.1依赖配置2.1.2编写FeignClient的接口, 并加@FeignCleint 注解2.2 消费...
    99+
    2022-11-13
  • Spring Cloud Stream消息驱动组件使用方法介绍
    目录1、Stream解决的痛点问题2、Stream重要概念3、传统MQ模型与Stream消息驱动模型4、Stream消息通信方式及编程模型4.1、Stream消息通信方式4.2、St...
    99+
    2022-11-13
  • Javainterrupt()方法使用实例介绍
    目录前言栗子一栗子二大栗子前言 进入正题之前还是先回顾一个会被问无数遍的问题: stop和interrupt的区别是什么? 简单的说就是,stop的话,那线程就真的结束了。 inte...
    99+
    2023-02-03
    Java interrupt() Java interrupt()方法使用
  • SpringCloud openfeign声明式服务调用实现方法介绍
    目录一、介绍二、使用 三、通讯优化一、介绍 OpenFeign是一种声明式、模板化的HTTP客户端(仅在Application Client中使用)(称OpenFeign作...
    99+
    2022-12-08
    SpringCloud openfeign声明式服务调用 SpringCloud openfeign
  • Spring Cloud Gateway 服务网关的部署与使用详细介绍
    一、为什么需要服务网关: 1、什么是服务网关:         传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关,客户端只能在本地记录每个微服务的调用地址,当需要调用的微服务数量很多...
    99+
    2023-09-01
    spring cloud gateway java 微服务 服务网关
  • C#接口方法的实例介绍
    本篇内容介绍了“C#接口方法的实例介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!公有方法实现C#接口方法尽管C#在定义接口时不用指明接口...
    99+
    2023-06-18
  • JavaScriptreduce方法使用方法介绍
    目录1. reduce方法的使用2. reduce数组的使用场景2.1 扁平化数组2.2 数组去重2.3 计算数组最大/最小值2.4 数组求和2.5 计算数组中元素的出现次数3. 操...
    99+
    2022-11-13
    JavaScript reduce JS reduce
  • Spring Cloud Alibaba全家桶(六)——微服务组件Sentinel介绍与使用
    前言 本文小新为大家带来 微服务组件Sentinel介绍与使用 相关知识,具体内容包括分布式系统存在的问题,分布式系统问题的解决方案,Sentinel介绍,Sentinel快速开始(包括:API实现...
    99+
    2023-09-02
    微服务 sentinel java spring cloud
  • js的math对象方法实例介绍
    本篇内容主要讲解“js的math对象方法实例介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“js的math对象方法实例介绍”吧!Math对象方法//返回最大值...
    99+
    2022-10-19
  • python EasyOCR库实例用法介绍
    说明 EasyOCR是一个用python编写的OCR三方库。可以在python中调用,用来识别图像中的文字,并输出为文本。 支持80多种语言的识别,识别精度高,甚至要超过PaddleOCR。 安装命令 pip i...
    99+
    2022-06-02
    python EasyOCR库
  • Spring Cloud微服务使用webSocket的方法
    webSocket webSocket长连接是一种在单个tcp连接上进行全双工通信的协议,允许双向数据推送。一般微服务提供的restful API只是对前端请求做出相应。使用web...
    99+
    2022-11-12
  • php命名空间举例介绍使用方法
    命名空间是为了解决当前文件内相同作用域内常量名之间、函数名之间、类名之间的命名冲突。 在 PHP 中变量名是不会冲突的,在相同作用域内,对于同一个变量,最后一个变量会取代前一个变量的...
    99+
    2022-11-13
  • 15个JavaScript数组方法的实例介绍
    本篇内容主要讲解“15个JavaScript数组方法的实例介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“15个JavaScript数组方法的实例介绍”吧!在...
    99+
    2022-10-19
  • Kotlin ContentProvider使用方法介绍
    目录1、注册ContentProvider2、内容URI内容URI的标准格式通配符3、创建自己的ContentProvider4、访问其他程序中的数据1、注册ContentProvi...
    99+
    2022-11-13
  • AndroidLeakCanary的使用方法介绍
    目录1.LeakCanary 如何自动初始化2.LeakCanary如何检测内存泄漏2.1LeakCanary初始化时做了什么2.2LeakCanary如何触发检测2.3LeakCa...
    99+
    2022-11-13
  • String.format()方法的使用介绍
    String.format() 方法中的 % 符号用作占位符,用于将值插入字符串中。它用于使用特定值(例如整数、浮点数或字符串)格式化字符串。% 符号后面跟着一个字母,指定要插入的值的类型,例如 %d 表示整数,%s 表示字符串。要插入的...
    99+
    2023-09-07
    java 开发语言 spring servlet
  • mysqldump的使用方法介绍
    这篇文章主要介绍了mysqldump的使用方法介绍,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。1、说明mysqldump在库被删除的情况下,无法直接从文件恢复,需要手动新建同名库,才能从文件恢复数据。2、语法shell...
    99+
    2023-06-15
  • SpringBoot中activeMq的用法实例介绍
    本篇内容主要讲解“SpringBoot中activeMq的用法实例介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot中activeMq的用法实例介绍”吧!SpringBoot...
    99+
    2023-06-20
  • Spring Cloud Feign使用对象参数的方法
    本文小编为大家详细介绍“Spring Cloud Feign使用对象参数的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“Spring Cloud Feign使用对象参数的方法”文章能帮助大家解决...
    99+
    2023-06-29
  • ReactHooks使用方法全方位介绍
    目录hooks介绍useState(保存组件状态)useEffect()useCallback(记忆函数)useMemo(记忆组件)useRef(保存引用值)useReducerus...
    99+
    2023-03-19
    React Hooks React Hooks方法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作