当前位置: 首页 > 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.hskmm.com/?act=detail&tid=20982

相关文章:

  • 9月29日
  • JVM调优实战及常量池详解
  • Cisco Identity Services Engine (ISE) 3.5 - 基于身份的网络访问控制和策略实施系统
  • 03-控制台项目创建与结构说明
  • 赋能智慧应急:国标GB28181平台EasyGBS视频技术如何成为气象灾害预警新工具
  • NET各个版本新增的特性和语法糖
  • xinference推理embedding等小模型
  • day15-项目上线
  • opencv学习记录6
  • 努力的轨迹,通往成长的旅程——赵欣彤的自我介绍
  • 第2章 day02 requests基础
  • 线性代数_工程实践-计算实现numpy
  • 在HAL库使用printf打印串口信息
  • 第4章 day04 防盗链
  • 第3章 day03 xpath+反爬虫
  • 002- 学习环境搭建
  • 第10章 day10 DrissionPage详细教程
  • 求局部最小值
  • Element-UI的transfer穿梭框组件数据量大解决方案
  • 第9章 day09 hook插件
  • nginx 一致性hash和流量检查模块
  • 深入解析:10月底实习准备-Mysql(按面试频率准备)
  • 机器学习概述 - -一叶知秋
  • CEXE的%你赛5-题解
  • C++语言(1)
  • Windows多人共享文件夹全流程,附2025新共享文件快90%
  • 第11章 day11-day12关于json请求体/逆向爬虫实战
  • 容斥与二项式反演
  • react useCallback Hook详解
  • 从Docker构建失败到CRA被淘汰:一个React项目的ES模块探索记录