@FeignClient参数详解
时间: 2023-10-20 19:35:59 浏览: 52
@FeignClient标签是用于声明一个Feign客户端的注解,它有一些常用的属性可以用来配置Feign客户端的行为。以下是对这些参数的详细解释:
1. name:指定FeignClient的名称,如果项目使用了Ribbon,name属性会作为微服务的名称,用于服务发现。
2. url:url一般用于调试,可以手动指定@FeignClient调用的地址。
3. decode404:当发生http 404错误时,如果该字段为true,会调用decoder进行解码,否则抛出FeignException。
4. configuration:Feign配置类,可以自定义Feign的Encoder、Decoder、LogLevel、Contract等。
5. fallback:定义容错的处理类,当调用远程接口失败或超时时,会调用对应接口的容错逻辑,fallback指定的类必须实现@FeignClient标记的接口。
6. fallbackFactory:工厂类,用于生成fallback类示例,通过这个属性我们可以实现每个接口通用的容错逻辑,减少重复的代码。
7. path:定义当前FeignClient的统一前缀,当我们项目中配置了server.context-path, server.servlet-path时使用。
这些参数可以根据具体的需求进行配置,以满足不同的业务场景。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
相关问题
@FeignClient 参数详解
@FeignClient注解是Spring Cloud中提供的一个基于HTTP请求的声明式REST客户端,它可以帮助我们快速开发和集成微服务应用。
该注解包含以下参数:
1. name:FeignClient的名称,通常是服务提供者的应用名。
2. url:服务提供者的URL地址,可以是完整的URL地址,也可以是域名(会使用Ribbon进行负载均衡)。
3. value:同name参数,FeignClient的名称。
4. configuration:FeignClient的配置类,可以在其中配置FeignClient的属性,例如连接超时时间、请求拦截器等。
5. fallback:FeignClient调用失败时的回退实现类,需要实现FeignClient接口。
6. fallbackFactory:FeignClient调用失败时的回退工厂类,需要实现FallbackFactory接口。
7. path:FeignClient的基础路径。
8. decode404:是否将404错误解码为null返回。
9. primary:是否将该FeignClient作为主要的FeignClient。
10. qualifier:用于指定FeignClient的限定符。
11. urlExpression:指定完整URL地址的SpEL表达式。
需要注意的是,name、value、url和urlExpression必须至少指定一个。同时,fallback和fallbackFactory只能指定一个。在使用FeignClient时,我们可以根据具体的业务场景选择合适的参数。
@FeignClient(name
@FeignClient(name是一个注解,用于声明一个Feign客户端。它的常用属性有name、url、decode404、configuration、fallback、fallbackFactory和path。
name属性用于指定FeignClient的名称,如果项目使用了Ribbon,name属性会作为微服务的名称,用于服务发现。
url属性一般用于调试,可以手动指定@FeignClient调用的地址。
decode404属性是一个布尔值,当发生http 404错误时,如果该字段为true,会调用decoder进行解码,否则抛出FeignException。
configuration属性是Feign配置类,可以自定义Feign的Encoder、Decoder、LogLevel、Contract等。
fallback属性用于定义容错的处理类。当调用远程接口失败或超时时,会调用对应接口的容错逻辑。fallback指定的类必须实现@FeignClient标记的接口。
fallbackFactory属性是一个工厂类,用于生成fallback类的实例。通过这个属性,我们可以实现每个接口通用的容错逻辑,减少重复的代码。
path属性用于定义当前FeignClient的统一前缀。当项目中配置了server.context-path和server.servlet-path时,可以使用path属性来统一指定接口的前缀。
一个使用@FeignClient注解的例子如下:
@FeignClient(name="custorm", fallback=Hystrix.class)
public interface IRemoteCallService {
@RequestMapping(value="/custorm/getTest", method = RequestMethod.POST)
@Headers({"Content-Type: application/json;charset=UTF-8"})
List<String> test(@RequestParam("names") String[] names);
}
在这个例子中,@FeignClient注解的name属性指定了FeignClient的名称为"custorm"。该接口定义了一个test方法,并使用@Header注解指定了请求头的Content-Type。如果调用该接口失败或超时,会调用Hystrix类中定义的容错逻辑。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [feign-1.0.0.jar](https://download.csdn.net/download/loltdwfs/12334296)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [@FeignClient使用详解](https://blog.csdn.net/xhwangSGTL/article/details/111991017)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]