@FeignClient list
时间: 2023-10-20 09:34:55 浏览: 130
spring cloud 之 Feign 使用HTTP请求远程服务的实现方法
@FeignClient是一个Spring Cloud提供的注解,用于声明一个Feign客户端。Feign是一个声明式、模板化的HTTP客户端,用于简化HTTP API的调用。
@FeignClient标签的常用属性如下:
- name:指定FeignClient的名称,如果项目使用了Ribbon,name属性会作为微服务的名称,用于服务发现。
- url: 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时使用。
在使用@FeignClient时,需要在启动类上添加@EnableFeignClients注解来开启Feign的远程调用。同时,还需要在Feign客户端的接口上使用@FeignClient注解来指定远程服务的名称以及其他属性。例如:
```java
@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注解指定了远程服务名称为"custorm",并定义了一个名为"test"的方法,用于调用远程接口。该方法使用了@Header注解来设置请求头信息,并且使用了@RequestParam注解来传递参数。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
阅读全文