简述
Feign是Netflflix开发的声明式,模板化的HTTP客户端,Feign可帮助我们更加便捷,优雅的调用HTTP API。SpringCloud对Feign进行了增强,使Feign支持了SpringMVC注解,并整合了Ribbon和Eureka,从而让Feign的使用更加方便。
Feign的基本使用
依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
启动类添加Feign的支持
在springboot启动类上添加@EnableFeignClients注解
启动类激活FeignClient
创建一个Feign接口,此接口是在Feign中调用微服务的核心接口
//声明需要调用的微服务名称 @FeignClient("service-product") public interface ProductFeignClient { /** * 配置需要调用的微服务接口 */ @RequestMapping(value = "product/{id}",method = RequestMethod.GET) public Product findById(@PathVariable("id") Long id); }
服务消费者调用Feign
消费者的展示层即可注入Feign接口并使用该接口完成服务调用
@Autowired private ProductFeignClient productFeignClient; @RequestMapping(value = "/buy/{id}",method = RequestMethod.GET) public Product findById(@PathVariable Long id){ //基于Feign组件调用远程微服务 Product product = null; product = productFeignClient.findById(id); return product; }