如何进行Feign的自定义配置

  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级别是不会输出的,其源码如下
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值