Spring Boot 中的 @FeignClient 注解详解
warning:
这篇文章距离上次修改已过410天,其中的内容可能已经有所变动。
@FeignClient 注解在 Spring Boot 中用于声明一个接口作为 Feign 客户端,用于微服务间的远程调用。
以下是 @FeignClient 注解的主要属性和用法:
name: 指定服务名称,用于创建 Ribbon 客户端,从而实现负载均衡。url: 直接指定调用的服务URL,不通过服务发现。serviceId: 指定服务ID,当name和url都未指定时,将使用serviceId作为服务名。contextId: 指定 Feign 客户端的 Bean 名称,当需要定义多个 Feign 客户端时,可以通过contextId区分。decode404: 是否将HTTP 404错误解码为null,默认为false。configuration: 指定自定义的 Feign 配置类,可以是配置类的数组。fallback: 指定 fallback 类,当服务调用失败时,fallback 类中的方法将被调用。path: 指定服务URL的路径,会添加到服务名称之后。
示例代码:
@FeignClient(name = "service-provider",
url = "http://localhost:8080",
configuration = CustomFeignConfiguration.class,
fallback = ServiceProviderFallback.class,
path = "/api")
public interface ServiceProviderClient {
@GetMapping("/users/{id}")
User getUser(@PathVariable("id") Long id);
@PostMapping("/users")
User createUser(@RequestBody User user);
}在这个例子中,ServiceProviderClient 接口定义了对 service-provider 服务的两个HTTP请求的映射。name 属性指定了服务名称,url 属性指定了服务的基础URL,configuration 属性指定了自定义的 Feign 配置类,fallback 属性指定了当服务不可用时的回退处理类。path 属性确保了所有映射的方法都会添加 /api 路径前缀。
评论已关闭