当前位置: 首页 > news >正文

34 Feign最佳实践

2.4.2.抽取方式

将Feign的Client抽取为独立模块,并且把接口有关的POJO、默认的Feign配置都放到这个模块中,提供给所有消费者使用。

例如,将UserClient、User、Feign的默认配置都抽取到一个feign-api包中,所有微服务引用该依赖包,即可直接使用。

2.4.3.实现基于抽取的最佳实践

1)抽取

首先创建一个module,命名为feign-api:

项目结构:

在这里插入图片描述

在feign-api中然后引入feign的starter依赖

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

然后,order-service中编写的UserClient、User、DefaultFeignConfiguration都复制到feign-api项目中

2)在order-service中使用feign-api

首先,删除order-service中的UserClient、User、DefaultFeignConfiguration等类或接口。

在order-service的pom文件中中引入feign-api的依赖:

<dependency><groupId>cn.itcast.demo</groupId><artifactId>feign-api</artifactId><version>1.0</version>
</dependency>

修改order-service中的所有与上述三个组件有关的导包部分,改成导入feign-api中的包

3)重启测试

重启后,发现服务报错了:

在这里插入图片描述

这是因为UserClient现在在cn.itcast.feign.clients包下,

而order-service的@EnableFeignClients注解是在cn.itcast.order包下,不在同一个包,无法扫描到UserClient。

4)解决扫描包问题

方式一:

指定Feign应该扫描的包:

@EnableFeignClients(basePackages = "cn.itcast.feign.clients")

方式二:

指定需要加载的Client接口:

@EnableFeignClients(clients = {UserClient.class})
http://www.lryc.cn/news/226266.html

相关文章:

  • 软文推广中如何搭建媒体矩阵
  • Unity地面交互效果——5、角色足迹的制作
  • Centos8安装出错问题
  • 计算机网络技术
  • 当电脑桌面黑屏,而你只有一个鼠标该怎么办(重启方法的平替)
  • Leetcode2833. 距离原点最远的点
  • chrome 的vue3的开发者devtool不起作用
  • Redis数据结构七之listpack和quicklist
  • 单词规律问题
  • 蓝桥杯每日一题2023.11.8
  • 高级PHP应用程序漏洞审核技术【一】
  • 适用于4D毫米波雷达的目标矩形框聚类
  • [模版总结] - 树的基本算法1 - 遍历
  • macOS Sonoma 14.2beta2(23C5041e)发布(附黑白苹果镜像地址)
  • Docker进阶——再次认识docker的概念 Docker的结构 Docker镜像结构 镜像的构建方式
  • postgis函数学习
  • 【Gradle-12】分析so文件和依赖的关系
  • vue项目pdf文件的预览
  • 企业计算机中了mkp勒索病毒怎么办,服务器中了勒索病毒如何处理
  • Android拖放startDragAndDrop拖拽Glide加载堆叠圆角图,Kotlin(5)
  • 1994-2021年分行业二氧化碳排放量数据
  • 如何进行Go程序的打包发布
  • python工具HIKVISION视频编码设备接入网关任意文件下载
  • [NLP] 使用Llama.cpp和LangChain在CPU上使用大模型
  • 开发知识点-Ant-Design-Vue
  • 2022最新版-李宏毅机器学习深度学习课程-P50 BERT的预训练和微调
  • Android codec2 视频框架 之输入buffer
  • Python实现局部二进制算法(LBP)
  • 如何评价现在的CSGO游戏搬砖市场
  • ResourceQuota对象在K8s上的说明