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

若依中Feign调用的具体使用(若依微服务版自身已集成openfeign依赖,并在此基础上定义了自己的注解)

若依中Feign调用具体使用

   注意:以下所有步骤实现的前提是需要在启动类上加入注解 @EnableRyFeignClients 主要是为开启feign接口扫描   

1.创建服务提供者(provider)

导入依赖(我在分析依赖时发现若依本身已经引入openfeign依赖,并在此基础上自定义了自己的@EnableRyFeignClients注解,此步可省略):

image-20250103195106053

service层代码如下(示例):

    在服务提供者中调用servic层获取数据//创建服务提供者
@RestController
@RequestMapping("/provider")
public class ProviderController {@Autowiredprivate UserService userService;@RequestMapping("/getUserById/{id}")public User getUserById(@PathVariable Integer id){return userService.getUserById(id);}
}

2.创建feign接口

代码如下(示例):

    解释都放在了代码中,可以直接复制粘贴/*** @FeignClient 一般采用服务名进行命名* url: url一般用于调试,可以手动指定@FeignClient调用的地址** @RequestMapping 主要用于feign框架拼接传递url,弥补了Ribbon的url需要手动拼接的缺陷* @PathVariable("id") 当路径为restful风格时路径传参方式* @RequestParam("id") 当路径为?id=250 时传参方式* @RequestBody User user 当路径为对象时采用的传参方式,(集合、数组等都属于对象)*/
@FeignClient("feign-provider")
@RequestMapping("/provider")
public interface UserFeign {@RequestMapping("/getUserById/{id}")User getUserById(@PathVariable("id") Integer id);@RequestMapping("/deleteUserById")User deleteUserById(@RequestParam("id") Integer id);//?形式拼接参数,?id=250@RequestMapping("/addUser")User addUser(@RequestBody User user);//pojo--->json
}

3.创建服务消费者(consumer)

//服务消费者
@RestController
@RequestMapping("/consumer")
public class ConsumerController {@Autowiredprivate UserFeign userFeign;@RequestMapping("/getUserById/{id}")public User getUserById(@PathVariable Integer id){return userFeign.getUserById(id);}
}

eger id){
return userFeign.getUserById(id);
}
}
这样,当消费者调用userFeign的getUserById(id)方法时,会向当前项目路径下的/provider/getUserById/{id}发送请求.

http://www.lryc.cn/news/516412.html

相关文章:

  • 【算法题系列】LeetCode 5.最长回文子串|JavaScript 5种思路实现
  • 基于ROS先验地图的机器人自主定位与导航SLAM
  • nginx 1.6.3配置虚拟主机与rewrite-location匹配规则
  • 1130-host ... is not allowed to connect to this MySql serve
  • 力扣1502判断能否形成等差数列
  • Python版本变更历史及版本选择指南
  • 初始值变量类型
  • 苍穹外卖 项目记录 day03
  • 统计字符【2】(PTA)C语言
  • 如何在 Spring Cloud Gateway 中创建全局过滤器、局部过滤器和自定义条件过滤器
  • PINN模型详解
  • 查找路由器的管理后台ip【通用找IP】
  • AI如何改变IT行业
  • 运行vue项目,显示“npm”无法识别为 cmdlet、函数、脚本文件或可操作程序的名称
  • Kubernetes开发环境minikube | 开发部署apache tomcat web单节点应用
  • OpenCV相机标定与3D重建(44)初始化广角(鱼眼)相机的投影映射函数initWideAngleProjMap()的使用
  • 现代前端框架
  • Vue进阶(贰幺贰)npm run build多环境编译
  • 社交新零售下开源 AI 智能名片 2+1 链动模式 S2B2C 商城小程序的创新实践与发展剖析
  • xml格式化(1):使用python的xml库实现自闭合标签
  • 重温设计模式--13、策略模式
  • 【Rust自学】10.7. 生命周期 Pt.3:输入输出生命周期与3规则
  • 产品经理-竞品分析
  • 51单片机——8*8LED点阵
  • 力扣第136题:只出现一次的数字 巧用异或
  • TCP 如何获取端口信息
  • RabbitMQ发布确认高级篇(RabbitMQ Release Confirmation Advanced Edition)
  • 福建省乡镇界面数据arcgis格式shp乡镇名称和编码无偏移坐标内容测评
  • Kafka 消费者
  • 人形机器人当前现状与挑战:从技术突破到未来发展