SpringCloud通過Feign傳遞List類型參數(shù)方式
通過Feign傳遞List類型參數(shù)
首先明確一點,SpringCloud通過Fegin如果是多個參數(shù),其中一個參數(shù)是List,那么是傳不過去的,單個List是可以的。
1、單個List實體傳遞
@RequestMapping("/secret/batchInsert")
public int batchInsert(@RequestBody List<BatchSecretBO> batchSecretBOList){
? ? return batchSecretService.batchInsert(batchSecretBOList);
}2、基本類型傳遞
基本類型可以通過數(shù)組的方式傳遞,代碼如下所示:
@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數(shù)據(jù)
? ? 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只能通過以上方法轉換成字符串后,再進行參數(shù)傳遞。
Feign在參數(shù)為List時的坑
我們在使用Feign進行服務接口調用時,有時候會有接口參數(shù)為List集合的時候,不能使用List接口類作為參數(shù),只能用List的實現(xiàn)類。
錯誤寫法

正確寫法

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
idea編寫yml、yaml文件以及其優(yōu)先級的使用
本文主要介紹了idea編寫yml、yaml文件以及其優(yōu)先級的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07
JavaSE實戰(zhàn)之酒店訂房系統(tǒng)的實現(xiàn)
這篇文章主要為大家詳細介紹了如何利用JavaSE實現(xiàn)酒店訂房系統(tǒng),文中的示例代碼講解詳細,對我們學習JavaSE開發(fā)有一定的幫助,需要的可以參考一下2022-07-07
Java使用IntelliJ IDEA連接MySQL的詳細教程
這篇文章主要給大家介紹了關于Java使用IntelliJ IDEA連接MySQL的相關資料,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04
spring如何快速穩(wěn)定解決循環(huán)依賴問題
這篇文章主要介紹了spring如何快速穩(wěn)定解決循環(huán)依賴問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03

