Spring Cloud Edgware新特性之三:使用配置属性自定义Feign的行为


声明:本文转载自https://my.oschina.net/eacdy/blog/1556450,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

Spring Cloud是当前炙手可热的微服务开发框架。它的功能强大,组件丰富,设计优雅。目前Spring Cloud还在不断发展之中。

Spring Cloud即将发布Spring Cloud Edgware 版本。该版本解决了不少Bug,新增了不少新特性,本系列博客将为大家详细阐述在Spring Cloud Edgware中新增的特性。

我们知道:

  • Ribbon在Spring Cloud Brixton 版中,只能使用Java代码自定义配置
  • Ribbon在Spring Cloud Camden 版中,可使用Java代码自定义配置,也可使用配置属性自 定义配置,两者等价。配置属性配置的方式为我们带来更好的使用体验和开发效率。
  • Feign使用Java代码自定义配置的方式跟Ribbon非常类似
  • 遗憾的是:在Spring Cloud Camden 中,Feign依然不支持使用配置属性来自定义配置。

该遗憾已在Spring Cloud Edgware 得到了填补——从此,Feign也支持配置属性自定义配置啦!

下面我们来看看如何使用配置属性自定义Feign的行为:

配置指定名称的Feign Client

对于一个指定名称的Feign Client(例如该Feign Client的名称为feignName ):

feign:   client:     config:       feignName:         connectTimeout: 5000  # 相当于Request.Options         readTimeout: 5000     # 相当于Request.Options         # 配置Feign的日志级别,相当于代码配置方式中的Logger         loggerLevel: full         # Feign的错误解码器,相当于代码配置方式中的ErrorDecoder         errorDecoder: com.example.SimpleErrorDecoder         # 配置重试,相当于代码配置方式中的Retryer         retryer: com.example.SimpleRetryer         # 配置拦截器,相当于代码配置方式中的RequestInterceptor         requestInterceptors:           - com.example.FooRequestInterceptor           - com.example.BarRequestInterceptor         decode404: false 

通用配置

上面讨论了如何配置特定名称的Feign Client,那么如果想为所有的Feign Client都进行配置,该怎么办呢?我们知道,@EnableFeignClients 注解上有个defaultConfiguration 属性,我们可以将默认配置写成一个类,然后用defaultConfiguration 来引用,例如:

@EnableFeignClients(defaultConfiguration = DefaultRibbonConfig.class)  

那么如果想使用配置属性该怎么办呢?

如果你想配置所有的Feign Client,只需像如下配置即可:

feign:   client:     config:       default:         connectTimeout: 5000         readTimeout: 5000         loggerLevel: basic  

如果你不小心又使用了Java代码配置Feign,同时又使用了配置属性配置Feign,那么使用配置属性的优先级更高。配置属性配置的方式将会覆盖Java代码配置。如果你想修改代码配置方式的优先级,可使用如下属性:feign.client.default-to-properties=false 。

TIPS:

本文发表于2017年10月26日 11:30
(c)注:本文转载自https://my.oschina.net/eacdy/blog/1556450,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 2313 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1