@FeignClient
时间: 2023-10-12 21:00:02 浏览: 58
`@FeignClient` 是 Spring Cloud 中用于声明一个基于 Feign 实现的 REST 客户端的注解。通过该注解,我们可以定义一个接口,并在接口中声明需要调用的 HTTP 接口的地址、请求方法、请求参数等信息,然后 Spring Cloud 将自动根据接口定义生成一个动态代理对象,我们只需要像使用本地的 Bean 一样使用该接口即可。
`@FeignClient` 注解常用的属性包括:
- `name`:指定 Feign 客户端的名称,该名称将作为 Spring Bean 注册到容器中,默认为当前注解标记的接口名的小写形式。
- `url`:指定 Feign 客户端请求的 URL,可以是完整的 URL 或者是相对 URL。当与 `name` 属性同时指定时,`url` 属性优先级更高。
- `configuration`:指定 Feign 客户端的配置类,用于进行客户端级别的配置,比如请求超时时间、重试次数等。
- `fallback`:指定 Feign 客户端的 Fallback 类,用于处理请求失败时的逻辑,例如返回默认值或者抛出异常。
- `fallbackFactory`:指定 Feign 客户端的 Fallback 工厂类,用于处理请求失败时的逻辑,与 `fallback` 属性的区别在于,`fallbackFactory` 可以获取原始的异常信息,从而进行更加详细的处理。
示例代码:
```
@FeignClient(name = "example-service", url = "http://localhost:8080")
public interface ExampleFeignClient {
@GetMapping("/example")
public String getExample();
}
```
在上述示例中,`@FeignClient` 注解声明了一个名为 `example-service` 的 Feign 客户端,该客户端请求的 URL 为 `http://localhost:8080`。接口中声明了一个 `getExample()` 方法,用于调用名为 `example` 的 HTTP 接口。