SpringCloud-OpenFeign初步使用

news/2025/2/22 6:12:12

在使用RestTemplate时,会发现拼接URL时非常不美观,并且在参数多了以后拼接起来也容易出错,而Feign就是为了解决这个问题,让远程调用像调用本地方法一样优雅且方便.

功能: 更优雅的进行远程调用

使用方法:

引入依赖,由于OpenFeign是基于负载均衡的所以要引入三个依赖,openFeign,LoadBalance和注册中心,这里使用Nacos

通过注解开启Feign的功能
在启动类上加上@EnableFeignClients

在服务调用端编写Feign客户端,并加上@FeignClient(value=”应用名”)URL的对应要与被调用方一致,方法名无所谓.这里有三个注意点,一、传递参数的时候最好加上@RequestParam注解,注解内标明被调用方的参数名.二、传递对象要用@SpringQueryMap注解标记一下.三、传递json数据要用@RequestBody标记

修改远程调用代码,此时的远程调用就像调用本地方法一样简单方便,但还不是最简单

最佳实践

功能:简化客户端代码使其更方便易用,如与调用方的接口把Feign中的代码抽取为一个单独的模块

使用方法:

新建feign-api模块

引入依赖,这里直接把依赖交给父项目即可

把feign-api模块打成jar包

在服务调用方引入依赖

由于Spring只扫描启动类下的包所以为了使Feign客户端成为bean需要在启动类上的@EnableFeignClients(basePackages = “包名”)


http://www.niftyadmin.cn/n/5861753.html

相关文章

【信息系统项目管理师-案例真题】2022下半年案例分析答案和详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 试题一(24分)【问题1】(6分)【问题2】(10分)【问题3】(8分)试题二(26分)【问题1】(8分)【问题2】(8分)【问题3】(4分)【问题4】(6分)试题三(25分)【问题1】(12分)【问题2】(7分)【问题…

高级SQL技术在Python项目中的应用:更进一步的数据分析与集成

引言 在第一篇中,我们深入探讨了ORM框架SQLAlchemy的高级用法以及性能优化策略。然而,要充分释放数据库的潜力,我们还需要掌握更多高级SQL特性,并将其与强大的数据分析工具生态系统有效集成。本篇将聚焦于窗口函数、CTE递归查询、JSON操作、全文搜索以及与Pandas的无缝集成…

【探商宝】2025年2月科技与商业热点头条:AI竞赛、量子计算与芯片市场新格局

一、 AI大模型竞争白热化:开源与闭源的博弈 OpenAI推进"星际之门"项目 为巩固美国在AI领域的领先地位,OpenAI正在全美评估数据中心选址,得州阿比林数据中心已开建。该项目被视为算力基建的关键布局,尽管面临DeepSeek低成…

Linux-Ansible命令

文章目录 常用命令基础命令 🏡作者主页:点击! 🤖Linux专栏:点击! ⏰️创作时间:2025年02月21日18点49分 常用命令 ansible #主命令,管理员临时命令的执行工具 ansible-doc #…

【后端基础】布隆过滤器原理

文章目录 一、Bloom Filter(布隆过滤器)概述1. Bloom Filter 的特点2. Bloom Filter 的工作原理 二、示例1. 添加与查询2. 假阳性 三、Bloom Filter 的操作1、假阳性概率2、空间效率3、哈希函数的选择 四、应用 Bloom Filter 是一种非常高效的概率型数据…

不同安装路径重复R包清理

df <- as.data.frame(installed.packages()) table(duplicated(df$Package)) ids <- df$Package[duplicated(df$Package)] df2 <- subset(df, df$Package %in% ids)

nginx ngx_stream_module(3) 指令详解

nginx ngx_stream_module(3) 指令详解 相关链接 nginx 嵌入式变量解析目录nginx 嵌入式变量全目录nginx 指令模块目录nginx 指令全目录 一、目录 1.1 模块简介 ngx_stream_upstream_module&#xff1a;上游服务器模块&#xff0c;允许定义一组后端服务器&#xff0c;并控制如…

【Java学习】多态

目录 一、方法相同 二、方法重写 1.概念 2.条件 三、向上转型 1.概念 2.方式 四、方法绑定 五、多态 一、方法相同 方法相同要求方法名相同、参数列表相同、返回值类型相同(与两方法修饰的访问限定符相不相同、静态非静态状态相不相同无关)&#xff0c;而且在子类与父…