Feign【@FeignClient】
2024-09-01 12:34:50
首先看一下@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细粒化配置,也支持针对整个项目做全局配置。
最新文章
- 基于Maven引入Hadoop包报Missing artifact jdk.tools:jdk.tools:jar:1.6
- 有关g++编译调试的问题
- 文件的压缩与解压XZip,XUnzip
- linux 线程函数大全
- Power Map
- Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist
- cf B. Fixed Points
- Oracle误删恢复
- Android 实现串口的移植
- elasticsearch 学习
- SQL反模式学习笔记21 SQL注入
- swust oj 984
- visual studio 2017下载地址
- [SQL]查询整个数据库中某个特定值所在的表和字段的方法
- QT开发环境安装配置教程
- Confluence 6 如何考虑设置一个空间的主页
- s9303这样的arp表是代表什么意思?
- 小X归来 模拟赛1 解析
- Android事件分发机制浅析(2)
- [ Continuously Update ] The Paper List of Seq2Seq Tasks ( including Attention Mechanism )