当前位置: 首页 > 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.jsqmd.com/news/6122/

相关文章:

  • 详细介绍:Redis 核心数据类型:从命令、结构到实战应用
  • 9月29日
  • JVM调优实战及常量池详解
  • Cisco Identity Services Engine (ISE) 3.5 - 基于身份的网络访问控制和策略实施系统
  • kuboard使用的etcd空间满了如何处理
  • 国内信创领域的PostgreSQL技术能力认证
  • redis-AOF持久化机制
  • 03-控制台项目创建与结构说明
  • 从拆盒到共创:手办盲盒抽赏小程序的多元体验与文化联结 - 实践
  • Nginx技术文档与LNMP架构部署指南 - 详解
  • 海康威视WEB视频监控插件3.3 解决视频画面遮挡 无法隐藏的问题 - 详解
  • YACS2025年9月乙组
  • 赋能智慧应急:国标GB28181平台EasyGBS视频技术如何成为气象灾害预警新工具
  • NET各个版本新增的特性和语法糖
  • xinference推理embedding等小模型
  • day15-项目上线
  • Docker入门 - 实践
  • opencv学习记录6
  • 努力的轨迹,通往成长的旅程——赵欣彤的自我介绍
  • 第2章 day02 requests基础
  • WebAPI开发步骤
  • 线性代数_工程实践-计算实现numpy
  • 在HAL库使用printf打印串口信息
  • 第3章 day03 xpath+反爬虫
  • ttkefu2026迎来永久免费的客服系统分享
  • 002- 学习环境搭建
  • 第10章 day10 DrissionPage详细教程
  • 求局部最小值
  • Element-UI的transfer穿梭框组件数据量大解决方案
  • 第9章 day09 hook插件