feign作用描述? 具体如何使用?
时间: 2023-10-30 22:07:56 浏览: 92
Feign是一个声明式的Web Service客户端,它使得编写Web Service客户端变得更加简单。使用Feign,只需要创建一个接口并注解,即可完成对Web Service的调用。Feign支持多种编码器和解码器,包括JSON、XML和表单编码。同时,Feign还提供了负载均衡的支持,可以通过配置多个服务地址实现负载均衡。
具体使用步骤如下:
1. 添加Feign依赖
```xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
```
2. 创建Feign客户端接口
```java
@FeignClient(name = "service-name", fallback = ServiceFallback.class)
public interface ServiceClient {
@GetMapping("/service/path")
String callService(@RequestParam("param") String param);
}
```
其中,`@FeignClient`注解用于标注此接口为Feign客户端接口,`name`属性指定了要调用的服务名,`fallback`属性指定了服务降级类。
3. 创建服务降级类
```java
@Component
public class ServiceFallback implements ServiceClient {
@Override
public String callService(String param) {
return "Service is unavailable";
}
}
```
服务降级类需要实现Feign客户端接口,并提供服务降级的逻辑。
4. 注入Feign客户端接口
```java
@RestController
public class MyController {
@Autowired
private ServiceClient serviceClient;
@GetMapping("/my/path")
public String callService() {
return serviceClient.callService("param");
}
}
```
在控制器中注入Feign客户端接口,并调用其中的方法即可实现对Web Service的调用。
需要注意的是,Feign默认使用的是`SpringMvcContract`,如果需要使用其他的契约,可以通过配置`feign.contract`属性实现。同时,Feign默认使用的是`Ribbon`作为负载均衡器,如果需要使用其他的负载均衡器,可以通过配置`feign.client.config.default`属性实现。
阅读全文