Spring Cloud之远程调用OpenFeign参数传递

news/2025/3/12 14:06:18/

目录

OpenFeign参数传递

传递单个参数

传递多个参数

传递对象

传递JSON


OpenFeign参数传递

传递单个参数

服务提供方product-service

@RequestMapping("/product")
@RestController
public class ProductController {@Autowiredprivate ProductService productService;@RequestMapping("/p1")public String p1(Integer id){return "product-service 接收到参数, id:"+id;}
}

Feign客户端

@FeignClient(value = "product-service",path = "/product")
public interface ProductApi {@RequestMapping("/p1")String p1(@RequestParam("id") Integer id);
}

远程调用方order-service

@RequestMapping("/feign")
@RestController
public class FeignController {@Autowiredprivate ProductApi productApi;@RequestMapping("/o1")public String o1(Integer id){return productApi.p1(id);}
}

 启动服务并访问

传递多个参数

服务提供方product-service

@RequestMapping("/product")
@RestController
public class ProductController {@Autowiredprivate ProductService productService;@RequestMapping("/p2")public String p2(Integer id, String name){return "product-service 接收到参数, id:"+id+",name:"+name;}
}

Feign客户端

@FeignClient(value = "product-service",path = "/product")
public interface ProductApi {@RequestMapping("/p2")String p2(@RequestParam("id") Integer id, @RequestParam("name") String name);
}

远程调用方order-service

@RequestMapping("/feign")
@RestController
public class FeignController {@Autowiredprivate ProductApi productApi;@RequestMapping("/o2")public String o2(Integer id, String name){return productApi.p2(id,name);}
}

启动服务并访问

传递对象

服务提供方product-service

@RequestMapping("/product")
@RestController
public class ProductController {@Autowiredprivate ProductService productService;@RequestMapping("/p3")public String p3(ProductInfo productInfo){return "product-service 接收到参数: productInfo"+productInfo.toString();}
}

Feign客户端

@FeignClient(value = "product-service",path = "/product")
public interface ProductApi {@RequestMapping("/p3")String p3(@SpringQueryMap ProductInfo productInfo);
}

远程调用方order-service

@RequestMapping("/feign")
@RestController
public class FeignController {@Autowiredprivate ProductApi productApi;@RequestMapping("/o3")public String o3(){ProductInfo productInfo = new ProductInfo();productInfo.setId(45);productInfo.setProductName("T恤");return productApi.p3(productInfo);}
}

启动服务并访问

传递JSON

服务提供方product-service

@RequestMapping("/product")
@RestController
public class ProductController {@Autowiredprivate ProductService productService;@RequestMapping("/p4")public String p4(@RequestBody ProductInfo productInfo){return "product-service 接收到参数: productInfo"+productInfo.toString();}
}

Feign客户端

@FeignClient(value = "product-service",path = "/product")
public interface ProductApi {@RequestMapping("/p4")String p4(@RequestBody ProductInfo productInfo);
}

远程调用方order-service

@RequestMapping("/feign")
@RestController
public class FeignController {@Autowiredprivate ProductApi productApi;@RequestMapping("/o4")public String o4(){ProductInfo productInfo = new ProductInfo();productInfo.setId(46);productInfo.setProductName("T恤46");return productApi.p4(productInfo);}
}

启动服务并访问


http://www.ppmy.cn/news/1578324.html

相关文章

国产麒麟操作系统日常操作--系统管理

国产麒麟操作系统日常操作–系统管理 一、uname命令–显示系统内核信息 uname命令来自英文词组UNIX name的缩写,其功能是查看系统主机名、内核及硬件架构等信息。 1.1 语法格式 参数功能-a ,-- all输出系统所有信息-s, --kernel-name输出内核名称-n, --nodename…

C51串口初始化及波特率设置

/*** brief 串口初始化,4800bps12.000MHz* param 无* retval 无*/ void UART_Init() {SCON0x40;PCON | 0x80;TMOD & 0x0F; //设置定时器模式TMOD | 0x20; //设置定时器模式TL1 0xF3; //设定定时初值TH1 0xF3; //设定定时器重装值ET1 0; //禁止定时器1…

2025年建筑行业安全员证报考条件

建筑安全员报考相关信息如下: 报考条件 年龄:年满 18 周岁,一般不超过 60 周岁,法定代表人除外。 学历: 安全员 A 证:建筑施工企业主要负责人应为大专以上学历,除企业法人外,其他…

C++设计模式中的单例模式:从原理、应用、实践指南与常见问题和解决方案深度解析

一、单例模式的核心原理 1.1 设计思想与定义 单例模式(Singleton Pattern)是一种创建型设计模式,其核心目标是确保一个类仅有一个实例存在,并提供该实例的全局访问入口。单例模式就像公司里唯一的总经理——无论哪个部门需要决策…

【性能测试】Jmeter详细操作-小白使用手册(2)

本篇文章主要介绍Jmeter中如何使用 JSON断言、同步定时器、事务控制器、CSV数据文件设置、HTTP Cookie管理器 目录 一:JSON断言 1:正确结果展示 2:错误结果展示 3:JSON配置 (1)Additionally assert …

程序设计语言基础知识概述

程序设计语言是用于书写计算机程序的符号语言,在计算机领域中扮演着关键角色。 一、语言发展与分类 从1957 年的FORTRAN开始,程序设计语言不断演化。语言可分为低级语言和高级语言。前者包括机器语言和汇编语言,与机器指令接近,…

使用 QML 和 QtSql 实现 SQLite 数据库操作

文章目录 前言 一、项目结构 二、配置 .pro 文件 三、创建 Database 类 3.1 database.h 3.2 database.cpp 四、main.cpp 五、编写 QML 界面 六、实验现象 前言 在现代应用程序开发中,数据库操作是不可或缺的一部分。Qt 提供了强大的 QtSql 模块,可以轻松…

Leetcode刷题笔记1 动态规划part09

Leetcode 188 买卖股票的最佳时机IV class Solution:def maxProfit(self, k: int, prices: List[int]) -> int:if not prices:return 0dp [[0] * (2 * k 1) for _ in range(len(prices))]for j in range(1, 2 * k , 2):dp[0][j] -prices[0]for i in range(1, len(prices…