Feign简介及使用

这篇具有很好参考价值的文章主要介绍了Feign简介及使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

在实际开发中,我们对某些服务的调用可能不止于一处,往往一个接口会被多处调用,所以我们通常都会针对各个微服务自行封装一些客户端累来包装这些依赖服务的调用

由此,Spring Cloud Fegin在Spring Cloud Ribbon的 RestTemplate基础上做了进一步封装,

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

springboot中使用

服务提供者

@RestController
@RequestMapping("api")
public class ProviderController {

    @GetMapping("/user/{nanme}")
    public String getUserName(@PathVariable(value = "nanme") String nanme) {
        return "我是服务提供者==>用户name:" + inanmed;
    }
}

使用Feign实现服务消费者

引入Feign依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

添加@EnableFeignClients注解开启功能

在应用主类xxApplication中,添加@EnableFeignClients注解开启Spring Cloud Feign的支持功能。

@SpringBootApplication
@EnableFeignClients()
public class xxxApplication {
    
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

使用Feign绑定服务对应的接口

使用@FeignClient绑定服务

  1. url可以直接指定第三方服务地址
  2. path指定路径,
  3. 接口的方法指定接口
  4. 通过 @FeifnClient的name属性 指定目标服务名称:client-provider-servename指定这个接口所要调用的服务名称
@FeignClient(name = "client-provider-server", path = "/api",url = "http://localhost:8081")
public interface HelloServiceFeign {

    @RequestMapping(value = "/getUserName", method = RequestMethod.GET)
    public String getUserName(String name);
}

使用上面绑定的服务

在springboot中需要使用的bean中,注入上述使用@FeignClient注释的bean,便可以使用其他服务的接口

@RestController
public class RestClientController {

    @Autowired
    private HelloServiceFeign client;


    @RequestMapping(value = "/geUsertName", method = RequestMethod.GET)
    public String getHost(String name) {
        return client.getName(name);
    }
}

总结

使用feign之后,我们调用eureka 注册的其他服务,在代码中就像各个service之间相互调用那么简单文章来源地址https://www.toymoban.com/news/detail-404677.html

到了这里,关于Feign简介及使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【前端框架】NPM概述及使用简介

    npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP。 npm是Node官方提供的包管理工具,他已经成了Node包的标准发布平台,用于Node包的发布、传播、依赖控制。npm提供了命令行工具,使你可以方便地下载、安装、升级、删除包,也可以让你作为开发者发布并维护包。 npm是随

    2024年02月03日
    浏览(36)
  • SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分

    目录 一.认识微服务 1.0.学习目标 1.1.单体架构 单体架构的优缺点如下: 1.2.分布式架构 分布式架构的优缺点: 1.3.微服务 微服务的架构特征: 1.4.SpringCloud 1.5Nacos注册中心 1.6.总结 二、Nacos基本使用安装部署+服务注册 (一)linux安装包方式单节点安装部署 1. jdk安装配置 2. na

    2024年02月09日
    浏览(47)
  • [SpringCloud] Feign 与 Gateway 简介

    目录 一、Feign 简介 1、RestTemplate 远程调用中存在的问题 2、定义和使用 Feign 客户端 3、Feign 自定义配置 4、Feign 性能优化 5、Feign 最佳实践 6、Feign 使用问题汇总 二、Gateway 网关简介 1、搭建网关服务 2、路由断言工厂 3、路由的过滤器配置 4、全局过滤器 5、过滤器链执行顺序

    2024年02月06日
    浏览(38)
  • React useMemo 实际开发使用小结

    useMemo 的原理是基于 memoization 技术。当你使用 useMemo 时,它会在组件渲染过程中缓存函数的计算结果,并在下一次渲染时,仅在依赖项(dependencies)发生变化时重新计算。如果依赖项没有发生变化,则直接返回之前缓存的结果,避免不必要的重复计算。 在组件初次渲染时,

    2024年02月16日
    浏览(45)
  • 简介:在这篇教程中,我们将使用React.js框架创建一个简单的聊天机器人的前端界面,并利用Dialogflo

    作者:禅与计算机程序设计艺术 介绍及动机 聊天机器人(Chatbot)一直是互联网领域中的热门话题。而很多聊天机器人的功能都依赖于人工智能(AI)技术。越来越多的企业希望拥有自己的聊天机器人系统,从而提升自己的竞争力。为此,业界也出现了很多基于开源技术或云

    2024年02月06日
    浏览(60)
  • 十三、使用Github Copilot 来提升我们的开发效率和使用技巧

    这段时间通过使用 github copilot 来辅助开发所总结的一些使用感受,来分享给大家 GitHub Copilot 是由 Github 和 OpenAI 创造的 AI 工具。该工具通过自动代码补全来帮助程序员们编写代码。Visual Studio Code、Neovim 和 JetBrains 的用户已经可以使用这个插件了。 GitHub Copilot 基于 OpenAI Codex

    2024年02月12日
    浏览(59)
  • 使用idea实现git操作大全(在项目开发中遇到的实际情况

    选中需要拉的分支,右键该分支,选中new breach from “分支”,点击后,给新建分支命名。 在自己分支开发完毕后,需要合并到sit分支上。 合并到sit分支上有两种方法 1.如果你是从sit分支拉的分支,那么你可以右键分支,选择merge “自己的分支” into “sit分支” 2.如果你不是

    2024年02月14日
    浏览(36)
  • 中文编程开发语言工具编程实际案例:台球棋牌混合计时计费软件使用的编程构件说明

    台球棋牌混合计时计费软件使用的编程构件说明 上图说明:该软件可以用于桌球和棋牌同时计时计费,在没有开台的时候,图片是处于等待状态,这使用编程工具中的固定图像构件,在正在计时的时候,图片自动变换为 进行中的状态,在编程中可以动态读取图片。 上图说明

    2024年02月08日
    浏览(54)
  • flutter 简介 flutter 能为我们做什么

    陆陆续续已经写了60多篇的flutter 的文章了,本篇文章就来说说我对flutter 的简单看法 Flutter是一种由谷歌开发的开源用户界面(UI)工具包,用于在多个平台上构建高性能、美观和流畅的移动应用程序。它使用Dart编程语言,并提供丰富的UI组件和工具,可以快速构建现代化的应

    2024年02月16日
    浏览(33)
  • 鸿蒙开发笔记(一):ArkTS概述及声明式UI的使用

    ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。 ArkTS在TS的基础上主要扩展了如下能力: 基本语法 :ArkTS定义了声明式UI描述、自定义组件和动态扩展UI元素的能力,再配合ArkUI开发

    2024年01月17日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包