Spring Cloud Feign是一套基于Netflix Feign实现的声明式服务调用客户端。它使得编写Web服务客户端变得更加简单。我们只需要通过创建接口并用注解来配置它既可完成对Web服务接口的绑定。它具备可插拔的注解支持,包括Feign注解、JAX-RS注解。它也支持可插拔的编码器和解码器。Spring Cloud Feign还扩展了对Spring MVC注解的支持,同时还整合了Ribbon来提供均衡负载的HTTP客户端实现。

添加依赖

1
2
3
4
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

修改启动器类,添加@EnableFeignClients

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@EnableFeignClients
@SpringBootApplication
public class ConsuleConsumerApplication {

public static void main(String[] args) {
SpringApplication.run(ConsuleConsumerApplication.class, args);
}

@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
}

添加Feign接口

service-producer为注册的服务名

1
2
3
4
5
6
@FeignClient("service-producer")
public interface FeignService {

@RequestMapping("/hello")
public String hello();
}