首先看一下@FeignClient注解的源码:

package org.springframework.cloud.openfeign;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.core.annotation.AliasFor; @Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface FeignClient {
@AliasFor("name")
String value() default ""; /** @deprecated */
@Deprecated
String serviceId() default ""; @AliasFor("value")
String name() default ""; String qualifier() default ""; String url() default ""; boolean decode404() default false; Class<?>[] configuration() default {}; Class<?> fallback() default void.class; Class<?> fallbackFactory() default void.class; String path() default ""; boolean primary() default true;
}

可以看出@FeignClient注解被@Target(ElementType.TYPE)修饰,表示@FeignClient注解的作用目标在接口上。

针对其常用属性做如下归纳:

  • String name():指定FeignClient的名称,如果项目使用了ribbon做负载均衡,name属性会作为微服务的名称,用于服务发现。
  • String url():url一般用于调试,可以指定FeignClient注解调用的地址。
  • boolean decode404():当发生404错误时,如果该字段为true,会调用decoder进行解码,否则抛出FeignException异常,默认是false。
  • Class<?> configuration():Feign的配置类,可以自定义Feign的Encoder、Decoder、LogLevel、Contract。
  • Class<?> fallback():定义容错的处理类,当远程调用超时或者远程接口失败,会调用对应接口的容错逻辑,fallback指定的类必须实现@FeignClient标记的接口。
  • Class<?> fallbackFactory():工厂类,用于生成fallback类实例,通过这个属性我们可以实现每个接口通用的容错逻辑,减少重复的代码。
  • String path():定义当前FeignClient的统一前缀路径。

  

feign支持对特定名称的feign细粒化配置,也支持针对整个项目做全局配置。

最新文章

  1. 基于Maven引入Hadoop包报Missing artifact jdk.tools:jdk.tools:jar:1.6
  2. 有关g++编译调试的问题
  3. 文件的压缩与解压XZip,XUnzip
  4. linux 线程函数大全
  5. Power Map
  6. Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist
  7. cf B. Fixed Points
  8. Oracle误删恢复
  9. Android 实现串口的移植
  10. elasticsearch 学习
  11. SQL反模式学习笔记21 SQL注入
  12. swust oj 984
  13. visual studio 2017下载地址
  14. [SQL]查询整个数据库中某个特定值所在的表和字段的方法
  15. QT开发环境安装配置教程
  16. Confluence 6 如何考虑设置一个空间的主页
  17. s9303这样的arp表是代表什么意思?
  18. 小X归来 模拟赛1 解析
  19. Android事件分发机制浅析(2)
  20. [ Continuously Update ] The Paper List of Seq2Seq Tasks ( including Attention Mechanism )

热门文章

  1. 贴两个mysql优化的配置文件
  2. python 最小二乘 leastsq 函数实现
  3. codeforces626F
  4. Mac cpu过高问题分析及解决
  5. nmon服务器性能结果报告分析
  6. Linux - /bin/sh^M: bad interpreter: No such file or directory
  7. 《Glibc内存管理》笔记DAY1
  8. 关于Kernel的思考
  9. 【Java】 HashMap
  10. matlab fspecial 用法解释