介绍

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

:::tips 一般默认值就能满足我们使用,如果要自定义时,只需要创建自定义的Bean覆盖默认Bean即可 :::

配置文件配置日志级别

配置指定服务

  1. feign:
  2. client:
  3. config:
  4. #指定某个服务的配置
  5. 服务名称:
  6. #配置日志级别
  7. loggerLevel: FULL

全局配置

  1. feign:
  2. client:
  3. config:
  4. #default是全局配置
  5. default:
  6. #配置日志级别
  7. loggerLevel: FULL

代码方式配置日志级别

创建实体类

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

全局配置

:::tips 如果要在此工程中全局生效,就指定启动类上@EnableFeignClients注解的defaultConfiguration属性为配置类类名.class :::

  1. @EnableFeignClients(defaultConfiguration = DefaultFeignConfiguration .class)

局部配置

:::tips 如果要在XxxClient中局部生效,就指定XxxCllient接口上@FeignClient注解的configuration属性为配置类类名.class :::

  1. @FeignClient(value = "服务名称", configuration = DefaultFeignConfiguration .class)