SpringCloud通過Feign傳遞List類型參數方式
通過Feign傳遞List類型參數
首先明確一點,SpringCloud通過Fegin如果是多個參數,其中一個參數是List,那么是傳不過去的,單個List是可以的。
1、單個List實體傳遞
@RequestMapping("/secret/batchInsert") public int batchInsert(@RequestBody List<BatchSecretBO> batchSecretBOList){ ? ? return batchSecretService.batchInsert(batchSecretBOList); }
2、基本類型傳遞
基本類型可以通過數組的方式傳遞,代碼如下所示:
@RequestMapping(value = "/stat/merchant/get_merchant_compare_info", method = RequestMethod.POST) @ResponseBody MerchantCompareTotalInfo getMerchantCompareInfo(@RequestParam("licenseNoList") String[] licenseNoList);
3、實體類型傳遞
實體類型可以通過FastJson將List轉換為String之后進行傳遞,代碼如下:
//調用方代碼 String contracts = JSONObject.toJSONString(contractBOList); contractDao.contractBatchSetRedis(contracts , 60 * 60); ? //接收方代碼 @PostMapping("/contract/contractBatchSetRedis") void contractBatchSetRedis(@RequestParam("contractBOList") String contractBOList, @RequestParam("expire") long expire) { ? ? List<ContractBO> contracts = JSONObject.parseArray(contractBOList, ContractBO.class); ? ? if (contracts == null || contracts.size() == 0) { ? ? ? ? ?return; ? ? } ? ? //批量set數據 ? ? redisUtil.getRedisTemplate().executePipelined((RedisCallback<String>) connection -> { ? ? ? ? for (ContractBO contract : contracts) { ? ? ? ? ? ? connection.setEx((RedisPrefixConst.CONTRACT_PREFIX + contract.getBusinessCode() + RedisPrefixConst.UNDERLINE_SEPARATOR + contract.getContractNo()).getBytes(), expire, JSONObject.toJSONString(contract).getBytes()); ? ? ? ? } ? ? ? ? return null; ? ? }); }
fegin局限性較多,如果要傳遞List只能通過以上方法轉換成字符串后,再進行參數傳遞。
Feign在參數為List時的坑
我們在使用Feign進行服務接口調用時,有時候會有接口參數為List集合的時候,不能使用List接口類作為參數,只能用List的實現(xiàn)類。
錯誤寫法
正確寫法
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
idea編寫yml、yaml文件以及其優(yōu)先級的使用
本文主要介紹了idea編寫yml、yaml文件以及其優(yōu)先級的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07JavaSE實戰(zhàn)之酒店訂房系統(tǒng)的實現(xiàn)
這篇文章主要為大家詳細介紹了如何利用JavaSE實現(xiàn)酒店訂房系統(tǒng),文中的示例代碼講解詳細,對我們學習JavaSE開發(fā)有一定的幫助,需要的可以參考一下2022-07-07Java使用IntelliJ IDEA連接MySQL的詳細教程
這篇文章主要給大家介紹了關于Java使用IntelliJ IDEA連接MySQL的相關資料,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04spring如何快速穩(wěn)定解決循環(huán)依賴問題
這篇文章主要介紹了spring如何快速穩(wěn)定解決循環(huán)依賴問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03