Spring Cloud学习笔记(Feign):配置类(未完成)

本文介绍了如何通过Bean配置和application.yaml配置Feign的日志级别,以及如何使用Inteceptor进行预处理请求。详细讲解了通过LogConfiguration和RequestInterceptor实现的日志和请求拦截功能。
摘要由CSDN通过智能技术生成

这是本人学习的总结,主要学习资料如下
- 马士兵教育

1、给Feign配置的方式

我们有两种方式配置Feign,一种是通过application.properties配置文件,另一种是在代码中加入Bean配置。

比如说Feign中我们可以配置日志级别,日志级别的降低可以让Feign打印出更丰富的日志。

日志级别有NONE, BASIC, HEADERS, FULL,他们对应着feign.Logger.Level中定义的枚举值。

1.1、通过Bean配置

首先写一个配置的Bean,返回日志级别。

public class LogConfiguration {
    @Bean
    public Logger.Level logLevel() {
        return Logger.Level.FULL;
    }
}

然后在@FeignClient那里指定配置类。

@FeignClient(name="user-client", configuration = LogConfiguration.class)
public interface UserFeignClient {
    
}

这时结果,打印了header,请求路径等几乎所有的信息。
请添加图片描述


1.2、application.yaml配置

这是更简单的方式。其中user-client是提供远程服务的应用,其spring.application.name=user-client

feign:
  client:
    config:
      user-client:
        loggerLevel: full	

2、配置日志

Open Feign默认是不打印任何日志的,我们需要额外的配置才能启用日志。

这里是集成Slf4j的示例。

2.1、日志级别

  1. NONE(default):不记录任何日志。
  2. BASIC:只记录请求方法,URL,状态响应码和执行时间。通常用于生产环境。
  3. HEADERS:在BASIC的基础上,还记录请求和响应的header。
  4. FULL:在HEADERS的基础上,还记录body和元数据。可以用在开发环境,方便定位问题。

1.2、指定日志级别

1.2.1、通过Bean配置

首先写一个配置的Bean,返回日志级别。

public class LogConfiguration {
    @Bean
    public Logger.Level logLevel() {
        return Logger.Level.FULL;
    }
}

1.2.2、application.yaml配置

这是更简单的方式。其中user-client是提供远程服务的应用,其spring.application.name=user-client

feign:
  client:
    config:
      user-client:
        loggerLevel: full	



3、Inteceptor配置

我们可以配置统一的拦截器,一种是在接受所有请求前预处理请求,另一种是发送请求前的预处理。

预处理发送的请求是实现RequestInteceptor。下面是示例。

预处理发送的请求是向所有请求中塞入token这个header。


public class FeignConfiguration {
    @Bean
    // feign.RequestInterceptor
    public RequestInterceptor requestInterceptor() {
        RequestInterceptor interceptor = new RequestInterceptor() {
            @Override
            public void apply(RequestTemplate requestTemplate) {
                requestTemplate.header("token", "1111111");
            }
        };
        return interceptor;
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值