当前位置: 首页 > news >正文

OpenFeign 继承FeignClient客户端注意事项

问题

起因是希望打印部分FeignClient的日志,不希望修改全局OpenFeign的日志打印。

因此不能使用
feign.client.config.default.logger-level=FULL

也不能使用全局的
@Bean
public Logger.Level openFeignFullLog() {
return Logger.Level.HEADERS;
}

现象

feign.client.config.clientname.logger-level=FULL 无效

分析

是否因为使用了 interface 上的 FeignClient.configuration 专用配置类导致上述配置无效?

@FeignClient(name="clientname", configuration=SampleClient.MiniConf.class) 
public interface SampleClient {@Beanpublic ErrorDecoder errorDecoder() {return new SharedFeignErrorDecoder();}@Beanpublic RequestInterceptor basic(String username, String password) {return new BasicAuthRequestInterceptor(username, password) {@Overridepublic void apply(RequestTemplate template) {super.apply(template);}};}
}

结论

由于实际使用更加精细,同时使用了contextId 和 extends继承接口,因此需要使用contextId 作为标识。

改为

feign.client.config.contextId.logger-level=HEADERS

备注:例如有多环境的Server,FeignClient需要请求他们,但是API接口是一样的,只是认证方式、Host URL等不一样。

通过FeignClient的name区分还不够,还需要ContentId。

例如:

@FeignClient(url = "${host1}", contextId = "server-h1", qualifier = "server-h1", configuration=....)
public interface H1Client {
}
@FeignClient(url = "${host2}", contextId = "server-h2", qualifier = "server-h2", configuration=...)
public interface H2Client extends H1Client {
}

此时需要修改为:

feign.client.config.server-h1.logger-level=HEADERS

feign.client.config.server-h2.logger-level=HEADERS

http://www.gsyq.cn/news/14024.html

相关文章:

  • 详细介绍:Redis 核心数据类型:从命令、结构到实战应用
  • Nginx技术文档与LNMP架构部署指南 - 详解
  • 海康威视WEB视频监控插件3.3 解决视频画面遮挡 无法隐藏的问题 - 详解
  • 赋能智慧应急:国标GB28181平台EasyGBS视频技术如何成为气象灾害预警新工具
  • NET各个版本新增的特性和语法糖
  • 第10章 day10 DrissionPage详细教程
  • 第9章 day09 hook插件
  • nginx 一致性hash和流量检查模块
  • 深入解析:10月底实习准备-Mysql(按面试频率准备)
  • 第11章 day11-day12关于json请求体/逆向爬虫实战
  • 容斥与二项式反演
  • 从Docker构建失败到CRA被淘汰:一个React项目的ES模块探索记录
  • react useMemo Hook详解
  • Python技能大赛-备赛建议
  • github Connection reset by 20.205.243.160 port 443 fatal: Could not read from remote repository.
  • Vue 3.6 引入 Vapor Mode,虚拟DOM已死?
  • part 10
  • content和text方法的区别
  • 完整教程:从零开始学神经网络——前馈神经网络
  • 聪明的wyk
  • 论状压记忆化搜索
  • Spring Gateway动态路由实现方案 - 详解
  • 调用setState 之后发生了什么?
  • 树形dp [POI 2013] LUK-Triumphal arch
  • 万象EXCEL开发(三)格式解读calcChain.xml——东方仙盟练气期 - 指南
  • 使用 ShedLock 实现多实例定时任务单执行的常见错误及解决办法
  • PiXYZ Studio 2021下载地址与安装教程
  • 深入解析:在 C# .NETCore 中使用 MongoDB(第 2 部分):使用过滤子句检索文档
  • 深入解析:4、urbane-commerce 认证请求 DTO 设计规范
  • 选对强大的技术底座:一篇文章讲透虚拟机与容器核心差异