如何进行Feign的自定义配置
发布时间:2023年12月17日
- Feign可以支持很多的自定义配置,下列是部分配置信息
-
类型 | 作用 | 说明 |
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的注解 |
- 一般情况下,默认值就能满足我们自己的使用了,如果要自定义时,只需要创建自定义的@Bean覆盖默认Bean即可,或者将配置文件的信息修改为自己的配置信息
- 以修改feign的日志级别为例
- 修改配置文件方式
- 针对单个微服务的feign进行设置
- 在application.yml文件中添加配置
-
feign:
client:
config:
# 指的是@FeignClient中的value设定的值,也就是对应的微服务名称
nacos-feign-user-service:
# 日志级别
loggerLevel: FULL
- 针对当前所有微服务进行设置
- 在application.yml文件中添加配置
-
feign:
client:
config:
# default就是全局配置
default:
# 日志级别
loggerLevel: FULL
- java代码编码方式
- 首先创建feign的配置类DefaultFeignConfiguration
-
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;
}
}
- 针对单个微服务的feign进行设置
- 在对应服务的@FeignClient中添加configuration属性
-
@FeignClient(value = "nacos-feign-user-service", path = "/users", configuration = DefaultFeignConfiguration.class)
- 针对当前所有微服务进行设置,也就是全局配置
- 修改项目的启动类的注解@EnableFeignClients,添加defaultConfiguration属性
-
@EnableFeignClients(clients = {UserApi.class}, defaultConfiguration = DefaultFeignConfiguration.class)
- 日志级别详细
- NONE:不记录任何日志信息,这是默认值
- BASIC:仅记录请求的方法,URL以及响应状态码和执行时间
- HEADERS:在BASIC的基础上,额外记录了请求和响应的头信息
- FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据
- 注意
- feign相关的日志默认是不会输出的,需要自定义配置才能输出,并且Feign只对debug级别的基本的日志做出响应,所以需要将日志级别设置为debug级别,info级别是不会输出的,其源码如下
文章来源:https://blog.csdn.net/weixin_41926152/article/details/135034114
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!