欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用feign客戶端傳參接收不到的問題及解決

 更新時間:2022年03月16日 09:56:16   作者:一縷82年的清風(fēng)  
這篇文章主要介紹了使用feign客戶端傳參接收不到的問題及解決,具有很好的參考價值,希望對大家有所幫助。

feign客戶端傳參接收不到

使用feign客戶端做不用服務(wù)之間的調(diào)用的時候出現(xiàn)了provider獲取不到參數(shù)的問題,在此記錄一下。

先來說一下流程

在我的微服務(wù)中,有這么幾個角色,consumer: 服務(wù)的消費者,provider:服務(wù)的消費者,還有一個feign,主要就是provider的接口形式,然后consumer依賴了feign,去調(diào)用provider中的服務(wù),我在provider中打印獲取的參數(shù),一直為空。

我這里,consumer, feign,provider都是單獨的模塊

我們來看下代碼

首先是provider:提供了一個保存用戶的服務(wù)

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {
?
? ? @PostMapping("/save")
? ? public String save(User user){
? ? ? ? log.info("provider: 處理save請求,參數(shù)為:{}",user);
? ? ? ? return "success";
? ? }

feign代碼:注意這個模塊要添加feign依賴

@FeignClient(name = "service-provider",fallback = UserHystrix.class)
public interface UserController {
?
? ? @PostMapping("/user/save")
? ? String save(User user);?
}

然后使用consumer通過feign調(diào)用provider:注意 consumer依賴feign,上代碼:

@RestController
@Slf4j
public class FeignController {
?
? ? @Autowired
? ? private UserController userController;
?
? ? @RequestMapping("/feign")
? ? public String test(){
? ? ? ? User user = new User();
? ? ? ? user.setName("zhangsan");
? ? ? ? user.setAge(10);
? ? ? ? log.info("feign調(diào)用開始。。。。");
? ? ? ? String result = userController.save(user);
? ? ? ? log.info("feign: 返回: {}", result);
? ? ? ? return "success";
? ? }???
}

各自服務(wù)啟動后,瀏覽器調(diào)用consumer的 /feign請求,觀察provider日志,發(fā)現(xiàn)獲取到的User參數(shù)沒有值。

如何解決

在provider中的方法里的User參數(shù)前面,加上  @RequestBody ,注意下面代碼中的注釋部分

@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {
?
? ? @PostMapping("/save")
? ? // 注意加上requestBody,否則容易接收不到參數(shù)
? ? public String save(@RequestBody User user){
? ? ? ? log.info("provider: 處理save請求,參數(shù)為:{}",user);
? ? ? ? return "success";
? ? }?
}

好了,為了方便大家觀看,在給出以下項目結(jié)構(gòu)吧:

feign傳遞參數(shù)!坑!

以下是FeignClient 注解的接口 中的一個抽象方法

@PostMapping("/bizTask/selectNonCompleteByShopIds")
List<BizTask> selectNonCompleteByShopIds(@RequestBody List<Long> shopIds);?

注意這里接口參數(shù) shopIds,該方法的參數(shù)列表也必須和抽象方法一致,否則接不到參數(shù)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 輕松掌握J(rèn)ava策略模式

    輕松掌握J(rèn)ava策略模式

    這篇文章主要幫助大家輕松掌握J(rèn)ava策略模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • java使用pdfbox操作pdf文件示例

    java使用pdfbox操作pdf文件示例

    有時候PDF中的文字無法復(fù)制,這可能是因為PDF文件加密了,不過使用PDFBox開源軟件就可以把它讀出來,下面是使用示例
    2014-03-03
  • Java使用IntelliJ IDEA連接MySQL的詳細(xì)教程

    Java使用IntelliJ IDEA連接MySQL的詳細(xì)教程

    這篇文章主要給大家介紹了關(guān)于Java使用IntelliJ IDEA連接MySQL的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Java之Thread的join方法實例

    Java之Thread的join方法實例

    這篇文章主要介紹了Java之Thread的join方法,實例形式講述了join方法的應(yīng)用,需要的朋友可以參考下
    2014-10-10
  • 淺談spring使用策略模式實現(xiàn)多種場景登錄方式

    淺談spring使用策略模式實現(xiàn)多種場景登錄方式

    本文主要介紹了spring使用策略模式實現(xiàn)多種場景登錄方式,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • spring boot日志管理配置

    spring boot日志管理配置

    這篇文章主要介紹了spring boot日志管理配置的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Java?Map接口概述和常用方法詳解

    Java?Map接口概述和常用方法詳解

    現(xiàn)實生活中,我們常會看到這樣的一種集合:IP地址與主機名,身份證號與個人,系統(tǒng)用戶名與系統(tǒng)用戶對象等,這種一一對應(yīng)的關(guān)系,就叫做映射。Java提供了專門的集合類用來存放這種對象關(guān)系的對象,即java.util.Map接口。本文就來聊聊Map接口概述和常用方法
    2022-10-10
  • Spring事務(wù)失效的8大原因詳解

    Spring事務(wù)失效的8大原因詳解

    這篇文章主要介紹了Spring事務(wù)失效的8大原因詳解,這里以 MySQL 為例,其 MyISAM 引擎是不支持事務(wù)操作的,InnoDB 才是支持事務(wù)的引擎,一般要支持事務(wù)都會使用 InnoDB,需要的朋友可以參考下
    2023-09-09
  • 關(guān)于Spring Cloud健康檢查的陷阱

    關(guān)于Spring Cloud健康檢查的陷阱

    這篇文章主要介紹了關(guān)于Spring Cloud健康檢查的陷阱,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 詳解Java序列化機制

    詳解Java序列化機制

    這篇文章主要介紹了Java序列化機制的相關(guān)資料,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12

最新評論