iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringCloud 如何使用feign时的复杂参数传递
  • 736
分享到

SpringCloud 如何使用feign时的复杂参数传递

2024-04-02 19:04:59 736人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

Feign传参注意 最近在用SpringCloud尝试重构以前的项目,使用Feign客户端组件来调用微服务,经常出现参数传不过去变成null的问题,网上查了一下发现feign在参数上

Feign传参注意

最近在用SpringCloud尝试重构以前的项目,使用Feign客户端组件来调用微服务,经常出现参数传不过去变成null的问题,网上查了一下发现feign在参数上的使用还是有一定的限制的,主要是要注意:

1. 当参数比较复杂时,feign即使声明为get请求也会强行使用post请求

2. 不支持@GetMapping类似注解声明请求,需使用


@RequestMapping(value = "url",method = RequestMethod.GET)

3. 使用@RequestParam注解时必须要在后面加上参数名

写了一个简单案例,同时传输一个对象和一个字符串作为请求参数,主要关注参数的声明,其余比如eureka和feign的依赖和配置和后续使用相关的知识请另行查阅。仅供参考

服务端(生产者)

准备:

1. 已经配置将服务注册在eureka,服务名为“item-service”

2. service层和dao层已经实现好了

逻辑:ItemController接收参数,调用service层,service中为商品Item对象添加详情desc,然后调用dao保存Item对象,返回Result结果封装对象


@RestController
public class ItemController { 
    @Autowired
    private ItemService itemService;
 
    
    @RequestMapping("/item/save")
    public Result addItem(@RequestBody Item item, @RequestParam("desc") String desc){
        return itemService.addItem(item, desc);
    }
}

客户端(消费者)

准备: 已经配置注册到eureka

逻辑:

声明ItemFeignClient调用eureka上名为"item-service"的服务,返回Result对象

使用Post请求,传递两个参数:

1. TbItem对象,使用@RequestBody来声明

2. String字符串,使用@RequestParam("xxx")来声明


@FeignClient("item-service")
public interface ItemFeignClient {
 
    
    @RequestMapping(value = "/item/save",method = RequestMethod.POST)
    Result addItem(@RequestBody TbItem item, @RequestParam("desc") String desc); 

springCloud feign参数传递问题记录

对象传递 @RequestBody(required = false)

不支持多对象传递,至少我目前发现是这样的,如有错误或者改进的方法请提出

API层


@FeignClient(value = "transaction-feign")
    public interface TransactionapiService {
        
        @RequestMapping(value = "/dealflow/list", method = RequestMethod.POST)
        JSONResultDO dealFlowList(@RequestBody(required = false) DealFlowDo param
                , @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum
                , @RequestParam(value = "pageSize", defaultValue = "20") Integer pageSize);
    }

接口层



@RequestMapping(value = "/dealflow/list", method = RequestMethod.POST)
public Page<DealFlowDo> dealFlowList(@RequestBody(required = false) DealFlowDo param
        , @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum
        , @RequestParam(value = "pageSize", defaultValue = "20") Integer pageSize
        , @RequestParam(value = "userId") Long userId){
    jsonResultDO resultDO = new JsonResultDO();
    Page<DealFlowDo> page = (Page<DealFlowDo> )dealFlowService.queryDealFlowList(userId, param, pageNum, pageSize);
    return page;
}

单个或多个参数传递 @RequestParam/@PathVariable @RequestMapping(value = "/merchant/{merNo}", method = RequestMethod.GET) String getMerchantByMerNo(@PathVariable("merNo") String merNo);

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: SpringCloud 如何使用feign时的复杂参数传递

本文链接: https://www.lsjlt.com/news/130136.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringCloud 如何使用feign时的复杂参数传递
    Feign传参注意 最近在用SpringCloud尝试重构以前的项目,使用Feign客户端组件来调用微服务,经常出现参数传不过去变成null的问题,网上查了一下发现feign在参数上...
    99+
    2024-04-02
  • SpringCloud怎么使用feign时的复杂参数传递
    这篇文章给大家分享的是有关SpringCloud怎么使用feign时的复杂参数传递的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Feign传参注意最近在用SpringCloud尝试重构以前的项目,使用Feign客...
    99+
    2023-06-20
  • SpringCloud如何通过Feign传递List类型参数
    小编给大家分享一下SpringCloud如何通过Feign传递List类型参数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!通过Feign传递List类型参数首先...
    99+
    2023-06-29
  • springcloud如何使用Feign后台内部传递MultipartFile
    目录如何使用Feign后台内部传递MultipartFile先修改FeignClient接口内部调用注意点Feign进行跨服务传递MultipartFile文件通过feign进行跨服...
    99+
    2024-04-02
  • 如何解决使用feign传递参数类型为MultipartFile的问题
    这篇文章主要介绍如何解决使用feign传递参数类型为MultipartFile的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!feign传递参数类型为MultipartFilefeign默认是不支持多媒体文件类型...
    99+
    2023-06-29
  • SpringBoot如何通过Feign调用传递Header中参数
    目录【SpringBoot】通过Feign调用传递Header中参数如何通过Feign传递Header参数问题描述解决方案【SpringBoot】通过Feign调用传递Header中...
    99+
    2023-05-17
    SpringBoot Feign调用传递Header参数 SpringBoot Feign调用参数
  • 使用feign传递参数类型为MultipartFile的问题
    目录feign传递参数类型为MultipartFile引入maven依赖加入配置类在feign客户端进行配置feign传参MultipartFile问题解决首先引入依赖新建feign...
    99+
    2024-04-02
  • 如何解决Feign调用的GET参数传递的问题
    这篇文章主要介绍了如何解决Feign调用的GET参数传递的问题的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何解决Feign调用的GET参数传递的问题文章都会有所收获,下面我们一起来看看吧。需求在消费方服务通...
    99+
    2023-06-29
  • SpringCloud Feign多参数传递的方法及需要注意哪些问题
    本文小编为大家详细介绍“SpringCloud Feign多参数传递的方法及需要注意哪些问题”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringCloud Feign多参数传递的方法及需要注意哪些问题”文章能帮助...
    99+
    2023-06-29
  • 如何使用OLEDBCommand传递参数
    使用OLEDBCommand传递参数的步骤如下:1. 创建一个OLEDBConnection对象并打开连接:```OleDbConn...
    99+
    2023-09-28
    参数
  • SpringCloud feign对象传参和普通传参及遇到的坑如何解决
    这篇文章主要介绍“SpringCloud feign对象传参和普通传参及遇到的坑如何解决”,在日常操作中,相信很多人在SpringCloud feign对象传参和普通传参及遇到的坑如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的...
    99+
    2023-06-29
  • 解决Feign调用的GET参数传递的问题
    目录需求思考GET方式请求①GET方式请求②GET方式请求③需求 ​ 在消费方服务通过GET方式,访问服务提供方的接口,需要传递多参数,拆分成多个参数的方式访问,不太适合用在该场景,...
    99+
    2024-04-02
  • 解决SpringCloud Feign传对象参数调用失败的问题
    SpringCloud Feign传对象参数调用失败 不支持GET请求方式 使用Apache HttpClient替换Feign原生httpclient @...
    99+
    2024-04-02
  • springcloud使用feign调用服务时参数内容过大问题
    目录feign调用服务时参数内容过大场景解决方法feign消费时,如果传入参数过长导致feign.FeignException: status 400 reading错误解决办法fe...
    99+
    2024-04-02
  • 关于feign调用的参数传递问题(@RequestBody和@RequestParam)
    目录feign调用的参数传递问题错误写法正确写法body的正确形式feign传参总结返回实体对象 服务提供者 restful传参 服务提供者传实体对象 服务提供者feign...
    99+
    2024-04-02
  • 如何使用Feign传递请求头信息
    这篇文章将为大家详细讲解有关如何使用Feign传递请求头信息,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Feign传递请求头信息在我之前的文章服务网关Spring Cloud Zuul中,将用户的登录i...
    99+
    2023-06-29
  • 如何解决SpringCloud Feign传输Date类型参数存在误差的问题
    这篇文章将为大家详细讲解有关如何解决SpringCloud Feign传输Date类型参数存在误差的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Feign传输Date类型参数存在误差最近在...
    99+
    2023-06-29
  • 使用PHP进行页面跳转时如何传递POST参数
    标题:PHP页面跳转中传递POST参数的实现方法 在网站开发中,经常会遇到页面跳转并需要传递POST参数的情况,这时候如何使用PHP实现对POST参数的传递就显得十分重要。本文将介绍如...
    99+
    2024-04-02
  • C++ 函数的参数如何传递?
    在 c++++ 中,参数传递有两种方式:按值传递:创建参数副本,函数修改副本不影响原参数。按引用传递:传递参数引用,函数修改引用会影响原参数。 C++ 函数参数的传递方式 在 C++ ...
    99+
    2024-04-18
    c++ 函数参数
  • SpringCloud如何使用Eureka实现服务之间的传递数据
    相信大家最关心的肯定不是什么一大堆的破理论,然后还似懂非懂的,最关心得莫过于服务之间的参数传递,数据获取。 Ok,今天就告诉大家三种微服务之间传输数据的方式,分别是: 1、最基本的利...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作