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

若依中Feign调用具体使用

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

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

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

service层代码如下(示例):

复制代码
    在服务提供者中调用servic层获取数据

//创建服务提供者
@RestController
@RequestMapping("/provider")
public class ProviderController {
	
	@Autowired
	private 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 {
 
    @Autowired
    private 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}发送请求.

相关推荐
隔窗听雨眠1 小时前
大模型加爬虫上篇:技术融合与架构革新
爬虫·架构
Vergelight2 小时前
实战拆解|三类RAG架构差异:朴素、进阶、多轮RAG落地选型指南
架构·大模型·aigc·agent·ai产品经理·转行·ai后台设计
Database_Cool_3 小时前
大规模数据分析降本指南:AnalyticDB Serverless 弹性架构实战
数据仓库·阿里云·架构·数据分析·serverless
绿算技术3 小时前
Mooncake 与绿算ForinnBase GroundPool如何联手打破推理僵局?
科技·算法·架构
阿米亚波3 小时前
【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统 + 离线软件源
linux·windows·经验分享·笔记·架构·arm
taocarts_bidfans5 小时前
反向海淘跨境缓存架构优化:taocarts Redis分层缓存实战技术
redis·缓存·架构·反向海淘·taocarts
by————组态5 小时前
Ricon组态系统 - 新一代Web可视化组态平台
前端·后端·物联网·架构·组态·组态软件
@insist1236 小时前
系统架构设计师-5G 技术、冗余设计与分层架构
5g·架构·系统架构·软考·系统架构设计师·软件水平考试
yspwf6 小时前
NestJS 配置管理完整方案
后端·架构·node.js
网络点点滴6 小时前
Node.js事件驱动架构
架构·node.js