返回顶部
首页 > 资讯 > 后端开发 > Python >微服务之Feign的介绍与使用小结
  • 614
分享到

微服务之Feign的介绍与使用小结

2024-04-02 19:04:59 614人浏览 安东尼

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

摘要

目录前言:?Feign的简介?Feign的优点?Feign如何使用?Feign的使用总结前言: 最近在学习微服务相关的知识,看了黑马的相关课程,将关于Feign的知识又总结了一些,希

前言:

最近在学习微服务相关的知识,看了黑马的相关课程,将关于Feign的知识又总结了一些,希望能帮到各位小伙儿们以及加深下自己的印象?

?Feign的简介

Feign 是一个声明式的伪rpc的REST客户端,它用了基于接口的注解方式,很方便的客户端配置,spring cloud 给 Feign 添加了支持spring mvc注解,并整合Ribbon及Eureka进行支持负载均衡

在这里插入图片描述

Feign 是⼀个 Http 请求的轻量级客户端框架。通过接⼝口和注解的⽅式发起 HTTP 请求调⽤,面向接口编程,并不是像 Java 中通过封装 HTTP 请求报⽂的⽅式直接调⽤。
服务消费⽅拿到服务提供⽅的接⼝,然后像调⽤本地接⼝⽅法⼀样去调⽤,实际发出的是远程的请求。让我们更加便捷和优雅的去调⽤基于 HTTP 的 api,被⼴泛应⽤在 Spring Cloud 的解决⽅案中。

?Feign的优点

之前我们利用RestTemplate发起远程调用的代码:

String url = "http://userservice/user/" + order.getUserld();
User user = restTemplate.getForObject(url, User.class);

上面的存在的问题有代码:
可读性差,编程体验不统一;
参数复杂URL难以维护
Feign是一个声明式的http客户端,官方地址:Feign官方链接

其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。

?Feign如何使用

还是以我们之前的项目为例
在order-service服务的pom文件中引入feign依赖:

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

在order-service的启动类添加注解开启Feign的功能:

@EnableFeignClients
@MapperScan("cn.itcast.order,mapper")
@SpringBootApplication
public class OrderApplication
public static void main(String[] args) [
SpringApplication.run(OrderApplication.class,args)

在order-service中新建一个接口,内容如下:

package cn.itcast.order.client;​
import cn.itcast.order.pojo.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.WEB.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
​@FeignClient("userservice")
public interface UserClient {   
  @GetMapping("/user/{id}")   
  User findById(@PathVariable("id") Long id);
 }

这个客户端主要是基于springMVC的注解来声明远程调用的信息,比如:

  • 服务名称:userservice
  • 请求方式:GET
  • 请求路径:/user/{id}
  • 请求参数:Long id
  • 返回值类型:User

这样,Feign就可以帮助我们发送http请求,无需自己使用RestTemplate来发送了。

我们修改order-service中的OrderService类中的queryOrderById方法,使用Feign客户端代替RestTemplate:

@Autowired
private UserClient userClient;
public Order query0rderById(Long orderId) 
//1.查询订单
Order order = orderMapper.findById(orderId);
//2. 利用Feign发起http请求 查询用户
Useruser = userClient.findById(order.getUserId());
//3.封装user到0rder
order.setUser(user);
// 4.返回
return order;

?Feign的使用总结

使用Feign的步骤:

第①步 引入依赖

第②步 添加@EnableFeignClients注解

第③步 编写FeignClient接口

第④步 使用FeignClient中定义的方法代替RestTemplate

到此这篇关于微服务之Feign的介绍与使用的文章就介绍到这了,更多相关微服务Feign内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 微服务之Feign的介绍与使用小结

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

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

猜你喜欢
  • 微服务之Feign的介绍与使用小结
    目录前言:Feign的简介Feign的优点Feign如何使用Feign的使用总结前言: 最近在学习微服务相关的知识,看了黑马的相关课程,将关于Feign的知识又总结了一些,希望能帮到...
    99+
    2024-04-02
  • 微服务Springcloud之Feign如何使用
    本文小编为大家详细介绍“微服务Springcloud之Feign如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“微服务Springcloud之Feign如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-07-05
  • React-Native之截图组件react-native-view-shot的介绍与使用小结
    目录一、现象二、解决三、总结:一、现象 1、需求:把某展示页面进行截取保存到相册、并可进行以海报的形式分享出去; 2、支持iOS和安卓 二、解决 1、安装: npm i --save...
    99+
    2024-04-02
  • 微信小程序view与scroll-view组件的使用介绍
    目录小程序组件的分类常见的视图容器类组件view组件的基本使用scroll-view组件的基本使用小程序组件的分类 小程序中的组件也是由宿主环境提供的,开发者可以使用组件快速搭建出页...
    99+
    2024-04-02
  • Java多线程的具体介绍与使用笔记小结
    目录一、基本概念:线程、进程1.1、进程与线程的具体介绍1.2、对于CPU而言的理解1.3、为什么要使用多线程二、线程的创建与使用2.1、如何去创建和启动一个线程2.2、Thread...
    99+
    2024-04-02
  • vue开发之moment的介绍与使用
    前言 在日常开发中,我们常常会遇到以下几种场景: 需要对日期进行非标准格式展示,如 :2021年5月11日星期二下午6点42分 需要对日期进行处理,如:...
    99+
    2024-04-02
  • redis简单介绍及安装使用小结
    一:redis介绍 Redis和Memcached类似,也属于k-v数据存储 Redis官网redis.io, 当前最新稳定版4.0.1 支持更多value类型,除了和string外,还支持hash、li...
    99+
    2024-04-02
  • JDBC的介绍与使用
    1. JDBC的介绍   jdbc为java开发者使用数据库提供了统一的编程接口,它由一组java类和接口组成。  访问数据库的流程  在连接这一过程中,一般初学者是MySQL和java在同一个电脑上,建立...
    99+
    2024-04-02
  • ResultSet的介绍与使用
    ResultSet是Java中用于表示数据库查询结果的对象,它可以对查询结果进行遍历和访问。一般来说,当使用JDBC进行数据库查询时...
    99+
    2023-09-11
    ResultSet
  • Spring Cloud Alibaba全家桶(六)——微服务组件Sentinel介绍与使用
    前言 本文小新为大家带来 微服务组件Sentinel介绍与使用 相关知识,具体内容包括分布式系统存在的问题,分布式系统问题的解决方案,Sentinel介绍,Sentinel快速开始(包括:API实现...
    99+
    2023-09-02
    微服务 sentinel java spring cloud
  • C++字符串流stringstream与string知识介绍与用法小结
    stringstream是C++标准库中提供的一个类,可以方便地对字符串进行输入输出操作。它是基于string类实现的,可以通过向s...
    99+
    2023-09-20
    C++
  • Android- Widget (应用微件/小组件/插件) 使用介绍
    一、概念: App Widget 即叫 应用微件 或者 小组件/插件. 是可以嵌入其他应用(如主屏幕)并 接收定期更新的微型应用视图。 这些视图称为界面中的微件. 例如,添加到桌面上的音乐Widget: app_widget_music_...
    99+
    2023-08-23
    android
  • 云服务器的介绍与应用实验报告总结
    云服务器是一种虚拟服务器软件,用于提供高性能、高可用性和弹性计算服务。在实验课程中,我们将介绍云服务器的基本知识、应用及其实验报告总结,以及一些常用的云服务器软件和工具。 一、基础知识 云服务器的主要特点:云服务器通常采用多租户模式,可...
    99+
    2023-10-26
    服务器 报告
  • Android Service服务详细介绍及使用总结
    Android Service服务详解 一.Service简介        Service是androi...
    99+
    2022-06-06
    android service service Android
  • Swoole与HTTP的使用介绍
    这篇文章主要讲解了“Swoole与HTTP的使用介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Swoole与HTTP的使用介绍”吧!目标了解swoole的http_server的使用了解...
    99+
    2023-06-07
  • Python:jieba库的介绍与使用
    前言: jieba是优秀的中文分词第三方库,由于中文文本之间每个汉字都是连续书写的,我们需要通过特定的手段来获得其中的每个词组,这种手段叫做分词,我们可以通过jieba库来完成这个过程。 目录: 一、jieba库基本介绍 (1)jieba...
    99+
    2023-09-22
    python
  • 【Python】pyinstaller的介绍与使用
    一、 概述 1、 简介 pyinstaller是一个第三方库,它能够在Windows、Linux、 Mac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可...
    99+
    2023-09-01
    python
  • 云服务器的介绍与应用
    云服务器(Cloud Docker)是一种虚拟服务器,它可以通过互联网将多个计算资源(主机、存储、网络等)连接起来,形成一个可以容纳各种不同类型数据(文档、图片、视频等)的集群环境。它的应用范围非常广泛,可以用于开发Web应用、数据库、游戏...
    99+
    2023-10-26
    服务器
  • 云服务器的介绍与应用实验报告总结与反思
    云服务器是一种虚拟服务器技术,其原理是将服务器资源分配给多个用户,每个用户只需要访问特定计算资源,就可以获得服务器中的所有资源。与传统服务器相比,云服务器具有快速部署、弹性扩展、高可扩展性等特点,因此被广泛应用于大型企业和个人用户。以下是云...
    99+
    2023-10-27
    服务器 报告
  • SpringCloud feign微服务调用之间的异常处理方式
    如何优雅地处理微服务间调用的异常 现在微服务架构盛行,其中spring cloud方案就很具有代表。 那么在微服务之间进行调用,如果被调用的服务挂了,调用方如何感知呢? 一、加上hy...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作