SpringCloud学习(2)-OpenFeign

1.OpenFeign简介

Feign是一个声明式的Web服务客户端(Web服务客户端就是Http客户端),让编写Web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可。

cloud官网介绍Feign:Spring Cloud OpenFeign

OpenFeign源码:https://github.com/OpenFeign/feign

2.OpenFeign能干什么

Java当中常见的Http客户端有很多,除了Feign,类似的还有Apache 的 HttpClient 以及OKHttp3,还有SpringBoot自带的RestTemplate这些都是Java当中常用的HTTP 请求工具。

什么是Http客户端?

当我们自己的后端项目中 需要 调用别的项目的接口的时候,就需要通过Http客户端来调用。在实际开发当中经常会遇到这种场景,比如微服务之间调用,除了微服务之外,可能有时候会涉及到对接一些第三方接口也需要使用到 Http客户端 来调用 第三方接口。

所有的客户端相比较,Feign更加简单一点,在Feign的实现下,我们只需创建一个接口并使用注解的方式来配置它(以前是Dao接口上面标注Mapper注解,现在是一个微服务接口上面标注一个Feign注解即可),即可完成对服务提供方的接口绑定。

一句话:OpenFeign可以提供声明式定义服务接口供调用

3.maven依赖

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

4.配置文件

spring:application:openfeign:client:config:default:## default 设置的全局超时时间,指定服务名称可以设置单个服务的超时时间connect-timeout: 20000 read-timeout: 20000httpclient:#openfeign默认的httpclient不支持连接池,性能效率较低,官方推荐使用Apache HttpClient5hc5:enabled: true#设置openfeign的请求响应压缩compression:request:enabled: true#支持压缩的数据类型mime-types: text/xml,application/xml,application/json min-request-size: 2048response:enabled: true
#设置feign日志 logging.level+@FeignClient完整接口名+debug
logging:level:com:sunxiao:cloud:apis:PayFeignApi: debug

5.启动和配置类

启动类要开启openfeign:@EnableFeignClients。
配置类:
@Configuration
public class FeignConfig {// 重试机制@Beanpublic Retryer myRetryer() {return new Retryer.Default();// 初次间隔 最大间隔 最大请求次数(1+2) = 3
//        return new Retryer.Default(100, 1, 3);}// 日志记录级别@Beanpublic Logger.Level feignLoggerLevel() {return Logger.Level.FULL;}
}

6.接口

@FeignClient(value = "servicename")
public interface PayFeignApi {@PostMapping("/Users")Result<Integer> addUser(@RequestBody UserDTO user);
}

7.客户端调用

@RestController
@RequestMapping("/feign")
public class OrderController {//注入接口对象@Resourceprivate PayFeignApi payFeignApi;@PostMapping("/users")public Result<Integer> test(@RequestBody UserDTO userDTO) {return payFeignApi.addUser(userDTO);}
}

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

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

相关文章

【Prometheus】关于Prometheus告警的一些使用心得

关于Prometheus告警的一些使用心得 指标规整及联动判定告警多条件判断告警路由分组和接受者以URL参数区分的多个Webhook的配置使用Alertmanger的API 之前一直有在用Prometheus的规则引擎配一些告警&#xff0c;感觉内容还是比较多&#xff0c;做一下整理&#xff0c;方便以后用…

3D怎么看模型内部结构---模大狮模型网

在3D建模和设计过程中&#xff0c;了解模型的内部结构是十分重要的。这不仅有助于审美和设计&#xff0c;还能够帮助我们更好地理解模型的构造和特性。模大狮将介绍一些方法和技巧&#xff0c;帮助您探索3D模型的内部结构。 一、使用切片工具 切片模型&#xff1a;通过切片工具…

手机销量分析案例

项目背景 某电商商城随着业务量的发展&#xff0c;积累了大量的用户手机销售订单数据。决策层希望能够通过对这些数据的分析了解更多的用户信息及用户的分布&#xff0c;从而可以指导下一年的市场营销方案以及更加精准的定位市场&#xff0c;进行广告投放。 数据说明 数据时…

等变GNN

非空集合 G G G上定义的二元运算如果满足某些性质&#xff0c;就构成了一个群。常见的群有&#xff1a; O ( n ) O(n) O(n)&#xff1a; n n n维正交群&#xff0c;包含旋转和反演操作&#xff0c;反演可以理解为推理或者映射。 S O ( n ) SO(n) SO(n)&#xff1a; n n n维特殊…

【学习笔记】java项目—苍穹外卖day04

文章目录 1. 新增套餐1.1 需求分析和设计1.2 代码实现1.2.1 DishController1.2.2 DishService1.2.3 DishServiceImpl1.2.4 DishMapper1.2.5 DishMapper.xml1.2.6 SetmealController1.2.7 SetmealService1.2.8 SetmealServiceImpl1.2.9 SetmealMapper1.2.10 SetmealMapper.xml1.…

Web攻击越发复杂,企业如何保护云上业

如今&#xff0c;电子政务、电子商务、网上银行、网上营业厅等依托Web应用&#xff0c;为广大用户提供灵活多样的服务。在这之中&#xff0c;流量攻击堪称是Web应用的最大敌人&#xff0c;黑客通过流量攻击获取利益、竞争对手雇佣黑客发起恶意攻击、不法分子通过流量攻击瘫痪目…

MySQL中使用distinct单、多字段去重方法

目录 一、distinct 1.1 只对一个字段查重 1.2多个字段去重 1.3针对null处理 1.4与distinctrow同义 二、聚合函数中使用distinct 三、CONCAT_WS函数 多个字段拼接去重是指将多个字段的值按照一定的规则进行拼接&#xff0c;并去除重复的拼接结果。这样可以生成唯一标识符…

【中大厂前端面试百问】这不迷死你?

写在前面 最近收到很多同行的抱怨&#xff0c;前端开发高级还行&#xff0c;对初中级最难过的不是面试过不去&#xff0c;而是“已读不回”&#xff0c;来自某聘的梗&#xff0c;确实是&#xff0c;初中级因为坑位较少&#xff0c;很多HR在专心招聘的时候都未必能让所有投简历…

TikTok账号为什么被封?如何防止被封?

多人在使用TikTok的过程中都会遇到一些问题&#xff0c;比如为什么TikTok没有浏览量&#xff1f;事实上&#xff0c;这很可能是因为你的账号已被禁止。但为什么它会被封呢&#xff1f;你怎样才能解决它&#xff1f; 一、TikTok账号为什么被封&#xff1f; 1、什么是 TikTok 影…

TikTok账号封号原因是什么?全面攻略

多人在使用TikTok的过程中都会遇到一些问题&#xff0c;比如为什么TikTok没有浏览量&#xff1f;事实上&#xff0c;这很可能是因为你的账号已被禁止。但为什么它会被封呢&#xff1f;你怎样才能解决它&#xff1f; 一、TikTok账号为什么被封&#xff1f; 1、什么是 TikTok 影…

本地项目提交到远程服务器的git流程

初入职场的开发小白或多或少都会遇到一些使用git来管理项目的问题&#xff0c;这里给大家浅浅的总结一下大致的提交流程 具体步骤如下&#xff1a; 将当前目录下的所有修改的文件添加到暂存区 git add .提交暂存区文件到本地仓库中 描述的内容就是你本次提交的一些相关说明 …

数据结构与算法(2)顺序表的初始化、插入、打印、删除、查找元素——C语言版

目录 1.前言 2.头文件的定义 3.菜单栏的设置 4.顺序表的初始化 5.添加元素 6.打印元素 7.查找元素 8.删除元素 9.插入元素 10.主函数 11.完整的代码实现 1.前言 数据结构包括三个方面 逻辑结构存储结构运算 而线性表有两种典型的存储结构 顺序存储结构链式存储结构 具体关系可…

idea端口占用

报错&#xff1a;Verify the connector‘s configuration, identify and stop any process that‘s listening on port XXXX 翻译&#xff1a; 原因&#xff1a; 解决&#xff1a; 一、重启大法 二、手动关闭 启动spring项目是控制台报错&#xff0c;详细信息如下&#xff…

openGauss 访问控制模型

访问控制模型 可获得性 本特性自openGauss 1.1.0版本开始引入。 特性简介 管理用户访问权限&#xff0c;为用户分配完成任务所需要的最小权限。 客户价值 客户依据自身需求创建对应的数据库用户并赋予相应的权限给操作人员&#xff0c;将数据库使用风险降到最低。 特性描…

Compose Navigation导航使用的部分注意事项

文章目录 一、前言二、使用判断条件进行显示隐藏和Navigation的区别三、Navigation和ViewModel的关系四、Navigation中替换页面的方式 一、前言 在Android的项目架构中有一种由单个Activity&#xff0c;多个页面组成的架构。页面之前是由Fragment来承载显示&#xff0c;现在可…

Photoshop 2024 Mac/win---图像处理的新纪元,解锁无限创意

Photoshop 2024是一款功能强大的图像处理软件&#xff0c;以其卓越的性能和广泛的应用领域&#xff0c;赢得了设计师、摄影师、图形艺术家等各类创意工作者的青睐。它提供了丰富的绘画和编辑工具&#xff0c;让用户能够轻松进行图片编辑、合成、校色、抠图等操作&#xff0c;实…

【0day】号卡sql注入

漏洞描述 号卡系统一键即可便捷快速的为您自己打造一个独立的属于你的号卡分销商城。此系统某接口存在SQL注入漏洞。 fofa语句 icon_hash"-795291075" 漏洞复现 构造payload nuclei验证 pocsuite3 验证 verify 验证 attack 验证 github poc总汇地址&#xff1a…

SpringBoot:自定义线程池配置类

文章目录 一、前言二、案例展示1、初始版本2、代码审核意见和优化建议3、潜在问题和风险4、优化建议5、优化后的代码 三、具体使用 一、前言 有时候我们在项目中做一些长链路的跑批任务时&#xff0c;基于Springboot项目的定时任务&#xff0c;我们可以指定一个自定义的线程配…

无极低码:同时删除两张表中的记录

原始需求&#xff1a;删除两张表用户id为44的数据记录 删除user_info表中u_id为44的用户 DELETE FROM user_info WHERE u_id 44; 删除user_org_rel 表中u_id为44的用户 DELETE FROM user_org_rel WHERE u_id 44; 简便写法&#xff1a;用工mysql写法一次执行两张表删除 &…

深入理解WebSocket:实时双向通信的利器

一、介绍 1.1 基础概念介绍 单工通信&#xff1a;数据传输只允许在一个方向上传输&#xff0c;只能一方发送数据&#xff0c;另一方接收数据并发送。半双工&#xff1a;数据传输允许两个方向上的传输&#xff0c;但在同一时间内&#xff0c;只可以有一方发送或接收数据。全双…