0%

Feign配置

Feign配置

首先主程序入口添加了@EnableFeignClients注解开启对FeignClient扫描加载处理,否则无法加载@FeignClient注解所标注的接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public @interface FeignClient {
// 指定了FeignClient的名称,如果使用了Ribbon,该值就是微服务的名称,用于服务发现
@AliasFor("name")
String value() default "";

/** @deprecated */
@Deprecated
String serviceId() default "";
// 指定了FeignClient的名称,如果使用了Ribbon,name就是微服务的名称,用于服务发现,且会作为bean的名称,如果该服务内有多个调用某个微服务的feign接口,可以使用value,而不使用name
@AliasFor("value")
String name() default "";

String qualifier() default "";
// 指定调用的地址,一般不使用该参数,而使用微服务的名称调用
String url() default "";
// 当发生404时,如果该字段为true,会调用decoder进行解码,否则抛出FeignException
boolean decode404() default false;
// 指定Feign的配置类,可以在Feign的配置类中自定义Feign的Encoder、Decoder、LogLevel、Contract
Class<?>[] configuration() default {};
// 失败回调,用于容错
Class<?> fallback() default void.class;
// 工厂生成fallback类实例,可以生成每个接口通用的容错逻辑
Class<?> fallbackFactory() default void.class;
// 定义当前FeignClient的统一前缀
String path() default "";

boolean primary() default true;
}