如何进行Feign的自定义配置

发布时间:2023年12月17日
  1. Feign可以支持很多的自定义配置,下列是部分配置信息
    1. 类型作用说明
      Logger.Level修改日志级别配置键:loggerLevel,包含四种不同的级别:NONE、BASIC、HEADERS、FULL
      Class<Retryer>失败重试机制配置键:retryer,请求失败的重试机制,默认是没有,不过会使用Ribbon的重试
      Class<Decoder>响应结果的解析器配置键:decoder,http远程调用的结果做解析,例如解析json字符串为java对象
      Class<Encoder>请求参数编码配置键:encoder,将请求参数编码,便于通过http请求发送
      Class<Contract>支持的注解格式配置键:contract,默认是SpringMVC的注解
    2. 一般情况下,默认值就能满足我们自己的使用了,如果要自定义时,只需要创建自定义的@Bean覆盖默认Bean即可,或者将配置文件的信息修改为自己的配置信息
  2. 以修改feign的日志级别为例
    1. 修改配置文件方式
      1. 针对单个微服务的feign进行设置
        1. 在application.yml文件中添加配置
          1. feign:
              client:
                config:
                  # 指的是@FeignClient中的value设定的值,也就是对应的微服务名称
                  nacos-feign-user-service:
                    # 日志级别 
                    loggerLevel: FULL
      2. 针对当前所有微服务进行设置
        1. 在application.yml文件中添加配置
          1. feign:
              client:
                config:
                  # default就是全局配置
                  default:
                    # 日志级别
                    loggerLevel: FULL
    2. java代码编码方式
      1. 首先创建feign的配置类DefaultFeignConfiguration
        1. package com.app.order.config;
          
          import feign.Logger;
          import org.springframework.context.annotation.Bean;
          
          /**
           * feign的系统配置信息
           *
           * @author Administrator
           */
          public class DefaultFeignConfiguration {
          
              @Bean
              public Logger.Level feignLoggerLevel() {
                  // 日志级别设置为FULL
                  return Logger.Level.FULL;
              }
          
          }
          
      2. 针对单个微服务的feign进行设置
        1. 在对应服务的@FeignClient中添加configuration属性
          1. @FeignClient(value = "nacos-feign-user-service", path = "/users", configuration = DefaultFeignConfiguration.class)
      3. 针对当前所有微服务进行设置,也就是全局配置
        1. 修改项目的启动类的注解@EnableFeignClients,添加defaultConfiguration属性
          1. @EnableFeignClients(clients = {UserApi.class}, defaultConfiguration = DefaultFeignConfiguration.class)
    3. 日志级别详细
      1. NONE:不记录任何日志信息,这是默认值
      2. BASIC:仅记录请求的方法,URL以及响应状态码和执行时间
      3. HEADERS:在BASIC的基础上,额外记录了请求和响应的头信息
      4. FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据
    4. 注意
      1. feign相关的日志默认是不会输出的,需要自定义配置才能输出,并且Feign只对debug级别的基本的日志做出响应,所以需要将日志级别设置为debug级别,info级别是不会输出的,其源码如下
文章来源:https://blog.csdn.net/weixin_41926152/article/details/135034114
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。