码迷,mamicode.com
首页 > 编程语言 > 详细

SpringCloud-声明式Rest调用Feign

时间:2018-06-19 18:55:02      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:代码   web   module   生产   成功   private   end   ring   nts   

前言:一般情况下我们通常使用RestTemplate来实现声明式远程调用,但是当参数过多,那么效率就会变得很低,并且难以维护,所以在微服务当中也有声明式Rest调用的组件Feign

一、Feign简介

  Feign是Netflix开发的声明式、模板化的http客户端,Feign可以帮我们更加便捷、优雅地调用HTTP API。在SpringCloud中使用Feign非常简单,创建一个接口,并在接口上加上注解,就完成了声明式调用;

二、Feign与SpringCloud的整合简单使用

  注:本次学习记录是基于之前的Eureka介绍Ribbon介绍之上实践,这里只展示关键代码,其余代码可在代码示例中查看;

  1、创建基于Eureka和Ribbon的服务端和两个客户端生产者、消费者:

  2、在消费者module中的maven依赖中添加相关依赖库,创建Feign访问接口,并注解,通过识别Eureka提供的应用名称,来找对应的请求路径:

  pom.xml:

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-feign</artifactId>
</dependency>

  Feign接口:

import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;

@FeignClient(name = "CLIENT-87")
public interface UserFeign {

    @RequestMapping("/getUser")
    public String getUser();

}

  Controller:

@Autowired
private UserFeign userFeign;

@RequestMapping("/getUser")
public String getUser() {
    return userFeign.getUser();
}

  在application.java启动类中加入@EnableFeignClients注解。

  3、分别启动Server、Client生产者、Client消费者,并调用访问http://localhost:8761、http://localhost:8762/getUser,如图:

技术分享图片

 

技术分享图片

调用成功!

 

 

代码示例:https://gitee.com/lfalex/springcloud-example eureka-feign-client eureka-ribbon-server eureka-ribbon-client2这三个module

SpringCloud-声明式Rest调用Feign

标签:代码   web   module   生产   成功   private   end   ring   nts   

原文地址:https://www.cnblogs.com/lfalex0831/p/9200583.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!