feign

在这个例子中,我们将向您展示如何使用Feign客户端开发一个简单的Spring Boot Application,以使用Weather REST服务。

Spring Boot是基于Java的框架,可简化Web和企业应用程序的构建。 Spring Boot具有嵌入式Tomcat,提供“启动程序”依赖关系,并且不需要配置XML。

Feign是由Netflix开发的用于实现REST API客户端的声明性框架。 Feign允许构建REST客户端声明和注释接口,实际实现在运行时提供。

1.项目环境

此示例将使用以下工具实现:

  1. JDK 1.8.81
  2. IntelliJ 2018.2.2
  3. Spring Boot 2.0.4
  4. Gradle4.10
  5. 春云Finchley.SR1

有了这些信息,让我们开始吧!

2.创建一个Spring Boot应用程序

单击文件->新建->项目

创建一个Spring Boot应用程序-步骤1

选择Spring Initializr并选择适当的JDK版本。

创建一个Spring Boot应用程序-步骤2

添加一个工件名称

选择Gradle Project,然后为您的项目输入一个版本

创建一个Spring Boot应用程序-步骤3

在下一个窗口中,选择选项:

  • 核心-> DevTools
  • 网页->网页
  • 云->云引导

创建一个Spring Boot应用程序–步骤4

选择项目的位置,然后单击“完成”按钮。

创建一个Spring Boot应用程序–步骤5

和瞧!

您有一个Spring Boot应用程序。

创建一个Spring Boot应用程序–步骤6

3.创建一个控制器并启动应用程序

创建一个名为FeignController类。 将Java类注释为Controller并实现GET方法,该方法返回带有伪数据的ResponseEntity 。 之后,我将使用真实信息来完成地图。

package com.example.feign.controller;@RestController
public class FeignController {private final IWeatherClient weatherClient;@Autowiredpublic FeignController(IWeatherClient weatherClient) {this.weatherClient = weatherClient;}@GetMapping(path = "/weather")ResponseEntity<Map> getWeather() {return ResponseEntity.ok(weatherClient.getWeather().getBody());}
}

使用用于部署应用程序的端口编辑文件application.properties。

server.port=9090

最后,运行并测试该应用程序的第一个版本。

测试应用

4.假冒客户实施

编辑build .gradle文件,并包括以下依赖项:

compile('org.springframework.boot:spring-boot-starter-web-services')
compile('org.springframework.cloud:spring-cloud-starter-openfeign')
compile('org.springframework.cloud:spring-cloud-starter-config')

记住运行build Gradle任务。

运行构建Gradle任务

创建一个程序包和一个接口。

它将是我们的假客户。

我将其命名为IWeatherClient

创建一个新的班级

将界面注释为FeignClient并添加一种获取天气的方法。

注释@FeignClient要求您包括服务的名称和URL。

在这种情况下,我选择了诸如name之类的数据,并为URL使用了一个属性。

package com.example.feign.feign;@FeignClient(name = "data", url = "${feign.client.url}")
public interface IWeatherClient {@RequestMapping(method = RequestMethod.GET)ResponseEntity<Map> getWeather();}

为接口添加一个实现。 如果在调用该服务时出现问题,这将是一个后备。 在这种情况下,我没有后备功能,因此我将返回null。

package com.example.feign.feign.imp;@Component
public class WeatherFallback implements IWeatherClient {@Overridepublic ResponseEntity<map> getWeather() {return null;}}
</map>

注释主类以启用Feign客户。 注释@EnableFeignClients要求您包括基本软件包。

package com.example.feign;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;@SpringBootApplication
@EnableFeignClients(basePackages = {"com.example.feign.feign","com.example.feign.controller"})
public class FeignApplication {public static void main(String[] args) {SpringApplication.run(FeignApplication.class, args);}
}

最后,在控制器中使用伪客户端,然后再次运行该应用程序。

创建Feign客户的结果

5.结论

此项解释了如何使用Feign来构建声明性HTTP客户端以使用Weather API。 Feign的目标是降低与HTTP APIS统一绑定分母的复杂性,而不管其是否平静。

6.下载项目

下载您可以在此处下载此示例的完整源代码: Feign示例

翻译自: https://www.javacodegeeks.com/2018/10/making-rest-communication-easy-with-feign-clients.html

feign

feign_与Feign客户轻松进行REST通信相关推荐

  1. feign rest_与Feign客户轻松进行REST通信

    feign rest 在这个例子中,我们将向您展示如何使用Feign客户端开发一个简单的Spring Boot Application,以使用Weather REST服务. Spring Boot是基 ...

  2. feign扫描_微服务通信之feign的注册、发现过程

    前言 feign 是目前微服务间通信的主流方式,是springCloud中一个非常重要的组件.他涉及到了负载均衡.限流等组件.真正意义上掌握了feign可以说就掌握了微服务. 一.feign的使用 f ...

  3. 串口NFC模块,轻松实现NFC通信

    串口NFC模块方案   一.主要特点: 用户只需通过Uart串口控制就能实现NFC设备间数据传输.不需要了解NFC底层协议,迅速完成产品开发. 二.支持平台: WinXP.Win7.Win8.Win1 ...

  4. JAVA通信(二)——实现客户机和服务器通信

    前面一篇博客我们简单地理清了JAVA创建服务器,以及客户机连接服务器的流程,今天我们继续往下学习,实现客户机和服务器的通信.由于基本概念我们已经在前一篇博客说清楚了,这里我们就不再进行赘述.(不清楚的 ...

  5. Linux C TCP Socket实现客户与服务器简单通信

    在Linux平台下用C语言udp协议实现客户与服务器的简单通信与封装的实现 一.服务器端 1.新建CreateServer.c和CreateServer.h文件,服务器的创建代码在此实现,程序中封装了 ...

  6. 轻松与外来客户进行REST通信

    在这个例子中,我们将向您展示如何使用Feign客户端开发一个简单的Spring Boot Application,以使用Weather REST服务. Spring Boot是基于Java的框架,可简 ...

  7. C语言限制双开关不同为1,网络环境下不同客户之间通信的C语言编程方法(第1稿)...

    网络环境下不同客户之间相互通信的C语言编程方法 大多数网络应用系统可分成客户和服务器两部分,他们之间的通信可能涉及两种方式:服务器和客户之间的通信,客户和客户之间的通信.本文主要阐明了网络环境下不同客 ...

  8. IEC61850变电站基本通信结构-原理和模型_6客户-服务器

    新的一天,加油! 在通信中,设备被看做服务器和客户端的关系,根据具体场合,角色有时会有所转换. 服务器模型 下图是服务器和客户端的通信介绍 C/S通信协议集通信 客户端和服务器都是基于ACSI(抽象通 ...

  9. 要闻君说:阿里云联合8家芯片模组商推出“全平台通信模组”;北汽与小桔车服联合“京桔”;IBM要帮助印度公司打造5G战略!...

    关注并标星星CSDN云计算 每周三次,打卡即read 更快.更全了解泛云圈精彩news go go go  嗨,大家好!偶是要闻君.盼望着.盼望着,放假的日子又临近了一步,抢先祝福各位看官们新年快乐哈 ...

最新文章

  1. 如何为Pyramid添加Middleware
  2. qq昵称由fly改为思诺
  3. 面向特定专业领域的计算机,大学计算机文化基础考试题(本科)基础知识部分
  4. 华为交换机—RRPP协议
  5. 转:Webkit Flex伸缩盒模型属性备忘
  6. 【直播回看】「EDGE X Kubernetes · 云原生在边缘的实践与应用」
  7. elasticsearch 的滚动(scroll)
  8. 全球视频监控设备市场规模分析
  9. oracle逻辑备份和物理备份,Oracle备份与恢复介绍(物理备份与逻辑备份)
  10. 在linux下搭建mysql数据库(以linux 版本Ubuntu18.04为例进行讲解)
  11. dismiss android,[转]Android对话框中dismiss和cancel、hide的区别
  12. 语音识别学习笔记(三)【动态时间归正的识别技术】
  13. Maven学习总结(52)——Maven 配置文件密码加密机制使用说明
  14. 7-汇编大小写字符互相转化+[bx+idata]+SI/DI
  15. 统计机器翻译与神经机器翻译区别_几十年的领域专家告诉你,机器翻译进化到哪一步了?...
  16. linux 命令之(2)grep
  17. 1024 程序员节,拿个勋章
  18. 2022车险购买:新手上路必看
  19. 10个的国外大学论文期刊网站分享
  20. java 超卖_Java生鲜电商平台-秒杀系统如何防止超买与超卖?(小程序/APP)

热门文章

  1. zabbix监控利用Python脚本发邮件
  2. linux系统下安装配置iSCSI教程
  3. 不可小瞧的GetHashCode函数
  4. 一条龙奇迹私服WEB系统后门及bug
  5. SAP BPC最佳实践-SAP BPC的OLAP引擎比较(MS OLAPBW OLAP)
  6. java.text.SimpleDateFormat多线程下的问题
  7. linux shell awk 中 printf 用法
  8. mysql text 最大长度 报错 Row size too large. The maximum row size for the used table type
  9. linux shell 按行 逐行 读取文件
  10. easyui messager 消息框 对话框