Spring Cloud学习笔记(Feigh):简介,实战简单样例

这是本人学习的总结,主要学习资料如下
- 马士兵教育

  • 1、Netflix Feign简介
  • 2、Open Feign的简单样例
    • 2.1、dependency
    • 2.2、代码样例

1、Netflix Feign简介

Netfilx Feign是用来帮助发送远程服务的,它让开发者觉得调用远程服务就像是调用本地方法一样,体验非常丝滑。

但是最终Netflix决定停止Feign的维护,转而将其变成一个开源项目,由Spring社区维护,并更名为Open Feign

Open FeignNetflix Feign功能上内容基本相同,因为前者是继承后者的缘故,OpenFeign有着更多更完善的功能。所以现在大家都用Open Feign

2、Open Feign的简单样例

Feign是利用对接口的注解,采用代理的技术来实现无痕远程调用。

所以使用Feign只需要两个步骤。

  1. 给启动类加上@EnableFeignClients注解,这样项目才能使用Feign相关的注解或者类。
  2. 定义接口。之后调用可以直接调用这些接口,像调用本地方法一样。

2.1、dependency

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

2.2、代码样例

先给启动加上@EnableFeignClients

这次的例子中,调用服务的是order-client,提供服务的是user-client。这里的order-clientuser-client两个名字,是在各自的应用中application.properties中定义的,spring.application.name=user-client,用来给本应用取名,方便其他服务发现自己。

@EnableDiscoveryClient
@SpringBootApplication
@EnableFeignClients
public class EurekaOrderClientApplication {public static void main(String[] args) {SpringApplication.run(EurekaOrderClientApplication.class);}
}

之后是定义接口,整个过程就像是定义一个Controller一样

@FeignClient(name="user-client")
public interface UserFeignClient {@GetMapping("/getUserInfo/{userId}")public String getUser(@PathVariable("userId") String userId);
}

user-client那边提供的服务接口是这样的

@RestController
public class UserController {@GetMapping("/getUserInfo/{userId}")public String getUser(@PathVariable("userId") String userId) {System.out.println(userId);return "userInfo: {userId: "+ userId +"}";}
}

最后这是调用服务的代码。

@RestController
public class OrderController {@Autowiredprivate UserServiceAPI userServiceAPI;@RequestMapping("createOrder")public String createOrder(String userId) {String userInfo = userServiceAPI.getUserInfo(userId);return "create order successfully, userInfo: " + userInfo;}
}public String getUserInfo(String userId) {return userFeignClient.getUser(7);
}

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/4429.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字化转型之路:企业信息化建设的关键步骤

随着科技的不断发展和应用&#xff0c;企业数字化转型热已过&#xff0c;浪正汹&#xff0c;不得不成为当今商业领域的必由之路。然而&#xff0c;数字化转型不仅仅是简单地引入一些新技术或软件&#xff0c;而是一场全面的变革&#xff0c;涉及到组织文化、业务流程、技术基础…

mysql数据库开发军规

MySQL数据库开发军规是一系列最佳实践和原则&#xff0c;旨在帮助开发者在MySQL数据库设计和开发过程中提升性能、确保数据安全、减少错误&#xff0c;并提高可维护性。以下是一些关键的MySQL开发军规&#xff1a; 核心军规&#xff1a; 避免在数据库中进行复杂运算&#xff…

计算机系列之进程调度、死锁、存储管理、设备管理、文件管理

11、进程调度-死锁-存储管理-固定分页分段 1、进程调度 进程调度方式是指当有更高优先级的进程到来时如何分配CPU。分为可剥夺和不可剥夺两种&#xff0c;可剥夺指当有更高优先级进程到来时&#xff0c;强行将正在运行进程的CPU分配给高优先级进程&#xff1b;不可剥夺是指高…

分享一些常用的内外网文件传输工具

内外网隔离后的文件传输是网络安全领域中一个常见而又重要的问题。随着信息技术的快速发展&#xff0c;网络安全问题日益凸显&#xff0c;内外网隔离成为了许多企业和组织保护内部信息安全的重要手段。然而&#xff0c;内外网隔离后如何有效地进行文件传输&#xff0c;成为了摆…

专利视角下的量子竞赛:《2024全球专利格局白皮书》

2024年1月&#xff0c;欧洲量子产业联盟&#xff08;QuIC&#xff09;发布了题为《全球量子技术专利格局描述》的综合白皮书。 该文件以透明的视角展示了当今的知识产权格局&#xff0c;包括知识产权持有人的地理分布。该文件由 QuIC 知识产权&#xff08;IP&#xff09;与贸易…

3DTiles特性与内容解析

一篇19年整理的比较老的笔记了。更多精彩内容尽在数字孪生平台。 瓦片种类 3DTiles瓦片有多种类型&#xff1a; b3dm(Batched 3D Model&#xff0c;批量3D模型) b3dm瓦片存储了多个个体&#xff0c;b3dm中的glb代表的实际对象应该具有相同的种类但是可能数据内容不同。b3dm…

ABAP开发:SAPscript表单设计及打印简介

在SAP ERP系统应用中&#xff0c;通常利用Forms表单来定制诸如发票、支票及标签之类的特殊文档的打印格式。这些Forms用来描述文档页面中的信息结构&#xff0c;比如地址抬头、item行、页脚等等&#xff0c;Forms设计就是要确定这些文档的输出格式。 利用SAPscript工具进行Form…

html+css 选择器优先级

1.基本选择器优先级 id>class>tagname(标签选择器)>*(通配符选择器) <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>基本选择器的优先级</title><style type"text/css"…

行列视平台的应用

行列视自助式生产报表系统是一个功能强大的数据分析和报表生成工具。它提供了简单易用的界面和丰富的功能&#xff0c;帮助用户从海量数据中提取洞察&#xff0c;并生成定制化的报表。 该系统具有直观的操作界面&#xff0c;无论您是数据分析专家还是初学者&#xff0c;都能轻…

ShaderLab的混合命令

文章目录 示例原理混合因子混合操作参考 示例 Pass {Tags{"LightMode" "ForwardBase"}// 关闭深度写入ZWrite Off// 设置Pass的混合模式&#xff0c;SrcAlpha: 片元着色器产生的颜色的混合因子// OneMinusSrcAlpha 已经存在于颜色缓冲中的颜色的混合因子…

vue实现左右两栏布局宽度可拖拽

项目里需要左右两栏布局根据内容多少可以用户自己拖拽宽度的需求 找了文章参考了下&#xff0c;但都没有实现我要的效果&#xff0c;所以结合调整了一下&#xff0c;记录一下我自己用到的效果 参考文章放下面了&#xff0c;感谢两位大佬 vue拖拽 html实现拖拽 最终效果实现…

STM32 cubemx hal库huart串口接收不到第一帧数据或数据全为0的问题

存在问题的stm32工程是使用cubemx搭建stm32串口dma通讯的工程. 问题是&#xff1a; 每次上电后&#xff0c;串口接收第一帧数据全部都为0&#xff0c;第二帧及以后接收的数据都是正确。 原因是&#xff1a; 以下2行代码&#xff0c;放在void HAL_UART_MspInit(UART_HandleT…

easyExcel - 带图片导出

目录 前言一、情景介绍二、问题分析三、代码实现1. 单图片导出2. 多图片导出3. 多图片导出&#xff08;优化&#xff09; 前言 Java-easyExcel入门教程&#xff1a;https://blog.csdn.net/xhmico/article/details/134714025 之前有介绍过如何使用 easyExcel&#xff0c;以及写…

Spring基础

一、Spring概述 1、Spring框架 Spring就是一个java框架&#xff0c;使用java语言开发&#xff0c;轻量级的开源框架&#xff0c;可以在j2se&#xff0c;j2ee都可使用。 Spring核心技术&#xff1a;IOC&#xff0c;AOP&#xff0c;核心是控制反转(IOC)和面向切面编程(AOP) S…

项目记录:一个C语言模拟操作系统的程序(1)

记录一个我的C语言做的非常简单的小项目&#xff0c;本大冤种帮一个上大一的远房堂弟&#xff08;不知道叫堂还是表了&#xff0c;反正是我妈亲戚家的&#xff09;做的课程设计&#xff0c;要求做的是一个字符图形界面的操作系统模拟。等他答辩完&#xff0c;无偿贡献给大家~给…

Linux:http配置用户登录认证访问网页

Linux&#xff1a;http配置用户登录认证访问网页 创建账户认证文件 # 第一次需要加-c&#xff08;创建create&#xff09;-m&#xff08;修改&#xff09; [rootserver100 ~]# htpasswd -cm /etc/nginx/.htpasswd shanxin New password: Re-type new password: Adding passwo…

Three.js使用动画库( GSAP 一款基于 JavaScript 的 web动画库)

安装 npm install gsap使用 <template><div></div> </template><script setup> import * as THREE from three; import { OrbitControls } from three/addons/controls/OrbitControls.js; // 导入动画库 import gsap from gsap// 场景 const s…

适用于芯片行业的开发及管理工具:版本控制、持续集成、代码分析及项目管理工具介绍

3月28日-29日&#xff0c;2024国际集成电路展览会暨研讨会&#xff08;IIC Shanghai&#xff09;在上海成功举行。此次盛会汇聚了集成电路产业的众多领军企业&#xff0c;共同探寻和把握集成电路产业的发展脉络。 龙智携芯片研发及管理解决方案亮相展会&#xff0c;展示如何通…

什么是外汇杠杆交易?

外汇杠杆交易是目前的外汇交易市场中&#xff0c;投资者进行外汇交易的重要方式&#xff0c;通过这样的交易方式&#xff0c;投资者就有机会进行以小搏大的交易&#xff0c;他们的交易就有可能会更成功&#xff0c;因此&#xff0c;投资者应该对这样的交易方式进行了解&#xf…

springboot 集成 activemq

文章目录 一&#xff1a;说明二&#xff1a;e-car项目配置1 引入activemq依赖2 application启动类配置消息监听3 application.yml配置4 MQConfig.java 配置类5 ecar 项目中的监听6 junit 发送消息 三&#xff1a;tcm-chatgpt项目配置5 MQListener.java 监听消息 三 测试启动act…