Spring-cloud-openfeign-@FeignClient中的configuration属性

@FeignClient注解中的configuration属性就是设置相关配置,但是这个属性写的非常的不好,而且在它的注释中也没有写全,所以本文记录一下,当我们的代码如下时:

@FeignClient(name = "xxx", configuration = Abc.class)
@FeignClient(name = "zzz")

其中这个Abc就是xxx这个client的配置类,不是zzz的配置类,所以对于zzz来说,Abc里的内容不会生效,那么Abc里都有哪些对象可以被认为是配置信息呢?根据实操,Abc这个类中,返回如下lite model是被feign认可的,它们分别是

RequestInterceptor:用于在发送请求前拦截并修改请求,例如添加或修改HTTP头信息
Decoder:用于将HTTP响应体解码为Java对象。Feign默认提供了ResponseEntityDecoder,但你可以自定义解码器来处理特定的响应格式
Encoder:用于将Java对象编码为HTTP请求体。Feign默认提供了SpringEncoder,但你也可以创建自己的编码器来处理特殊的需求
Contract:用于将Feign的接口方法映射为HTTP请求。Feign默认提供了SpringMvcContract,它支持Spring MVC的注解
Logger.Level:用于配置Feign的日志级别
Logger:用于自定义Feign的日志记录器
Client:用于发送HTTP请求。Feign默认使用Client.Default,但你可以替换为例如ApacheHttpClient、OkHttpClient等
Retryer:用于配置重试策略。Feign默认提供了Retryer.Default,但你可以自定义重试逻辑
ErrorDecoder:用于解码HTTP响应中的错误。Feign默认提供了ErrorDecoder.Default,但你可以自定义错误解码器来处理特定的错误情况
Options:用于配置Feign的底层请求选项,如连接超时、读取超时等
SetterFactory:用于创建Feign请求模板的setter方法。这通常不需要自定义,但在某些高级场景中可能有用
InvocationHandlerFactory:用于创建Feign的InvocationHandler。这也不常需要自定义,但在某些特定情况下可能有用

例如我要对xxx的client定义一个拦截器,每次发送请求的时候都往header里加点东西,那么我们可以在Abc这个类中这样写:

@Configuration
public class Abc{// 这个RequestInterceptor 类会被feign识别并配置,因为实现了RequestInterceptor 接口,// 而这个接口恰好是上述列表中的接口,所以这个配置自动生效@Beanpublic RequestInterceptor headerInterceptor() {return new HeaderInterceptor();}public static class HeaderInterceptor implements RequestInterceptor {@Overridepublic void apply(RequestTemplate template) {template.header("key1", "value1");}}
}

好了,本文就到这里,重点就是配置类中都有哪些Bean类型,也就是本文上述那个配置信息列表,至于这些接口怎么样网上多的是,本文只是为了拟补@FeignClient文档中的不足,所以我们不知道有哪些Bean类型

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

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

相关文章

git使用以及理解

git练习网站 Learn Git Branching git操作大全Oh Shit, Git!?! git commit git branch name git merge bugFix 合并俩个分支 git rebase main git checkout headgit switch head 会导致HEAD分离 ,就是指head->HEAD->c1 相对引用 ------------------- …

vue使用audio 音频实现播放与关闭(可用于收到消息给提示音效)

这次项目中因为对接了即时通讯 IM,有个需求就是收到消息需要有个提示音效,所以这里就想到了用HTML5 提供的Audio 标签,用起来也是很方便,首先让产品给你个提示音效,然后你放在项目中,使用Audio 标签&#x…

卡片式组件封装demo

效果视频: 卡片组件 样式还得细调~,时间有限,主要记录一下逻辑。 html结构: 目录 父组件数据处理数据格式 父组件的全部代码 子组件数据处理props参数 样式部分三个圆点点击三圆点在对应位置显示查看弹框点击非内容部分隐藏查看…

PHP连接MySQL数据库

PHP本身不具备操作MySQL数据库的能力,需要借助MySQL扩展来实现。 1、PHP加载MySQL扩展:php.ini文件中。(不要用记事本打开) 2、PHP中所有扩展都是在ext的文件夹中,需要指定扩展所在路径:extension_dir。 3、…

Linux 之 ln 硬链接和软链接

ln 语法 ln 命令用于创建链接,可以创建硬链接或符号链接。以下是 ln 命令的基本语法: ln [OPTION]... TARGET LINK_NAMETARGET:指定链接的目标文件或目标目录。LINK_NAME:指定要创建的链接的名称。 常用选项包括: …

探索未来机器人产业发展机遇:多元化增长与技术创新的双重驱动

在全球与中国机器人市场持续蓬勃发展的背景下,机器人产业正展现出前所未有的活力与潜力。从全球视角来看,机器人市场持续保持增长态势,特别是人形机器人作为新兴领域,其市场规模的迅速扩大预示着机器人产业正向着更加智能化、人性…

小抄 20240713

1 很多人在搭建人脉上有一个误区,怕给人添麻烦。 其实,适度麻烦别人,帮助有来有往,关系才能更稳固,不添麻烦和不联系差不多,双方的关系基本靠猜,等到再联系,不麻烦也成了大麻烦。 …

win10 langchain-chatchat-0.3.1安装及测试

git clone https://github.com/chatchat-space/Langchain-Chatchat.git conda create -n langchain3 python3.11 conda activate langchain3 xinference安装用另一篇文章的内容处理。 pip install langchain-chatchat -U -i https://pypi.tuna.tsinghua.edu.cn/simple pip in…

Linux常用命令(简要总结)

Linux常用命令 Linux 是一个强大的操作系统,广泛应用于服务器、开发和嵌入式系统中。掌握一些常用的 Linux 命令对于高效地使用系统至关重要。以下是一些常用的 Linux 命令及其简要说明: 文件和目录操作 ls:列出目录内容 ls ls -l # …

Mysql的语句执行很慢,如何分析排查?

1、检查服务器性能是否存在瓶颈 如果系统资源使用率比较高,比如CPU,硬盘,那访问肯定会慢,如果你发现是Mysl占比比较高,说明Mysql的读写频率高,如果本身网站访问量不大,说明你的sql参数,sql语句查…

C++代码_让室友坑我

引子 今天古文波在外地上C集训营,结果却被一起学习的室友坑了。啊,好气,我要报复室友。 所以,我写出了死亡代码。 如果你也想报复某些人,可以看下去。 代码构造: 头文件 想要使用一些函数,如…

【STC89C51单片机】串口通信

【STC89C51单片机】串口通信 串口简介1. 串口接线方式2. 通信过程 相关寄存器1. SBUF(Serial Buffer Register)2. SCON(Serial Control Register)3. PCON(Power Control Register)4. TCON(Timer…

记录些Redis题集(4)

Redis 通讯协议(RESP) Redis 通讯协议(Redis Serialization Protocol,RESP)是 Redis 服务端与客户端之间进行通信的协议。它是一种二进制安全的文本协议,设计简洁且易于实现。RESP 主要用于支持客户端和服务器之间的请求响应交互…

第 8 章 虚拟文件系统(2)

目录 8.3 VFS结构 8.3.1 结构概观 8.3.2 inode 本专栏文章将有70篇左右,欢迎关注,查看后续文章。 8.3 VFS结构 8.3.1 结构概观 VFS组成部分: 1. 文件。 2. 文件系统。 1. 文件的表示 inode:包含文件信息及数据存储位置。 上…

Oracle数据泵和RMAN异机备份还原速度对比

一、数据泵迁移 1、原始库停止监听 命令:lsnrctl stop 耗时:1分钟 2、原始库expdp导出 expdp username/password schemasUSER dumpfilefilename.dmp directoryBAK_DIR version11.2.0.4.0 logfilelogfilename.log compressionall clusterN 耗时&…

001、Mac系统上Stable Diffusion WebUI环境搭建

一、目标 如标题所述,在苹果电脑(Mac)上搭建一套Stable Diffusion本地服务,以实现本地AI生图目的。 二、安装步骤 1、准备源码【等价于准备软件】 # 安装一系列工具库,包括cmake,protobuf,rust,python3.10,git,wge…

Nginx、LNMP万字详解

目录 Nginx 特点 Nginx安装 添加Nginx服务 Nginx配置文件 全局配置 HTTP配置 状态统计页面 Nginx访问控制 授权用户 授权IP 虚拟主机 基于域名 测试 基于IP 测试 基于端口 测试 LNAMP 解析方式 LNMP转发php-fpm解析 Nginx代理LAMP解析 LNMP部署示例 实…

linux之mysql安装和使用

数据库之Mysql 一、数据库介绍 1、什么是数据库 数据库就是一个存放计算机数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来对数据进行组织和存储的,可以通过数据库提供的多种方法来管理其中的数据。 2、数据库的种类 最常用的…

微分段Microsegmentation简介

目录 微分段Microsegmentation简介什么是微分段?微分段的防范措施微分段的防护层级 基于网络的微分段微分段基本工作机制微分段的角色VxLAN的额外字段 业务链分组与传输策略场景1:三层报文本地转发场景场景2:三层报文跨设备转发场景 微分段的…

中国贸易外经统计年鉴(2006-2023年)

数据年限:2006-2023年全 数据格式:pdf、excel、caj 数据内容:《中国贸易外经统计年鉴》是一部反映中国国内贸易、对外经济贸易和旅游业发展情况的资料性年刊。收录了 中国国内消费品市场、批发和零售业、住宿和餐饮业、国际收支、对外贸易、利…