• 9、Feign自定义配置


    Feign可以支持很多的自定义配置,如下表所示:

    类型作用说明
    feign.Logger.Level修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL
    feign.codec.Decoder响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象
    feign.codec.Encoder请求参数编码将请求参数编码,便于通过http请求发送
    feign. Contract支持的注解格式默认是SpringMVC的注解
    feign. Retryer失败重试机制请求失败的重试机制,默认是没有,不过会使用Ribbon的重试

    一般情况下,默认值就能满足我们使用,如果要自定义时,只需要创建自定义的@Bean覆盖默认Bean即可(这也是SpringBoot自动配置的一种机制,我们不配置会默认帮我们配置好,我们需要自定义配置直接定义即可替换默认配置)。

    下面以日志为例来演示如何自定义配置。

    1、配置文件方式

    基于配置文件修改feign的日志级别可以针对单个服务:

    feign:  
      client:
        config: 
          userservice: # 针对某个具体微服务的配置(配置服务名即可)
            loggerLevel: FULL #  日志级别 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    也可以针对所有服务:

    feign:  
      client:
        config: 
          default: # 针对全局微服务的配置,用default即可
            loggerLevel: FULL #  日志级别 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    而日志的级别分为四种,考虑到性能,推荐使用NONE或BASIC:

    • NONE:不记录任何日志信息,这是默认值。
    • BASIC:仅记录请求的方法,URL以及响应状态码和执行时间
    • HEADERS:在BASIC的基础上,额外记录了请求和响应的头信息
    • FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据。

    2、Java代码方式

    也可以基于Java代码来修改日志级别。

    先编写一个类,然后声明一个Logger.Level的对象:

    public class DefaultFeignConfiguration  {
        @Bean
        public Logger.Level feignLogLevel(){
            return Logger.Level.BASIC; // 日志级别为BASIC
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    如果要全局生效,将其放到启动类的@EnableFeignClients这个注解内:

    @EnableFeignClients(defaultConfiguration = DefaultFeignConfiguration .class) 
    
    • 1

    如果是局部生效,则把它放到对应的@FeignClient这个注解中:

    @FeignClient(value = "userservice", configuration = DefaultFeignConfiguration .class) 
    
    • 1
  • 相关阅读:
    [Android]Mac电脑Android Studio使用真机调试运行
    JAVA开发(JAVA虚拟机体系架构)
    题目 1053: 二级C语言-平均值计算(python详解)——练气三层初期
    【7. 进程管理】
    网安学习-应急响应2
    k8s之创建基于sa的访问凭据kubeconfig文件
    洛谷 P1160 队列安排
    上海老年大学app开发,岁月如歌,欢笑永远
    【使用 BERT 的问答系统】第 7 章 :BERT 模型的未来
    结构物坐标计算
  • 原文地址:https://blog.csdn.net/qq_49451343/article/details/125445107