美文网首页Spring Cloud Spring Cloud
Spring Cloud Edgware新特性之三:使用配置属性

Spring Cloud Edgware新特性之三:使用配置属性

作者: 周立_itmuch | 来源:发表于2017-10-26 09:39 被阅读93次

    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:

    本文链接: http://www.itmuch.com/spring-cloud/edgware-new-feign-properties/
    **版权声明: **本博客由周立创作,采用 CC BY 3.0 CN 许可协议。可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。

    相关文章

      网友评论

        本文标题:Spring Cloud Edgware新特性之三:使用配置属性

        本文链接:https://www.haomeiwen.com/subject/oiyhpxtx.html