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

解決feignClient調用時獲取返回對象類型匹配的問題

 更新時間:2021年06月24日 14:36:21   作者:黃三yeah  
這篇文章主要介紹了解決feignClient調用時獲取返回對象類型匹配的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

feignClient調用時獲取返回對象類型匹配

feignClient是springCloud體系中重要的一個組件,用于微服務之間的相互調用,底層為httpClient,在之前的應用中,我一直以為A服務提供的方法返回類型為對象的話,那么調用A服務的B服務必須也用字段類型以及命名完全相同的對象來接收,為此我驗證了一下,發(fā)現不是必須用完全相同的對象來接收,比如,可以用map<String,Object>或者Object來接收,然后解析。

當然,復雜對象我還是推薦用一個完全相同的對象來接收。

下面是我的例子:

feignClient是springCloud體系中重要的一個組件,用于微服務之間的相互調用,底層為httpClient,在之前的應用中,我一直以為A服務提供的方法返回類型為對象的話,那么調用A服務的B服務必須也用字段類型以及命名完全相同的對象來接收,為此我驗證了一下,發(fā)現不是必須用完全相同的對象來接收,比如,可以用map<String,Object>或者Object來接收,然后解析。

當然,復雜對象我還是推薦用一個完全相同的對象來接收。

下面是我的例子:

項目一:首先創(chuàng)建一個服務注冊中心eureka

配置文件

項目二:緊接著創(chuàng)建一個服務提供方eureka-client,方法helloWorld返回值為map

注冊到eureka中

項目三:創(chuàng)建服務調用方service-feign

注意:map的key與Hello類字段屬性對應

注冊到eureka

最后:啟動三個項目

發(fā)現項目二 項目三已經被注冊到服務中心

調用項目三的接口

可以正常返回,由于項目二返回類型是map.而項目三是用對象Hello來接收的,那么就說明了服務提供方的返回值類型和調用方接收值類型并不是需要完全對應的。

feignClient傳參(參數為對象類型)的一個坑

客戶端

@RequestMapping(value = "/friendCircleComment/comment",method = RequestMethod.POST)
R comment(@RequestBody FriendCircleComment friendCircleComment);

服務端

@RequestMapping(value = "/comment")
public R comment(@RequestBody FriendCircleComment friendCircleComment){
  friendCircleCommentService.comment(friendCircleComment);
  return new R();
}

這么傳參是沒問題的,服務端也能接收到

但是,問題來了,

小程序的post請求的header必須為

header:{ 'content-type':'application/x-www-form-urlencoded'  }, 

導致后臺為@RequestBody接收不到參數,

feignClient默認參數請求類型是

header:{ 'content-type':'application/json'  }, 

定義@RequestBody接收參數的headers類型必須為

header:{ 'content-type':'application/json'  }, 

所以這樣就有沖突,feignClient和定義為'content-type':'application/x-www-form-urlencoded'的請求接口不能共用

解決方法

不使用對象接收,使用基本類型接收

如下

客戶端

@RequestMapping(value = "/friendCircleComment/comment",method = RequestMethod.POST)
R comment(@RequestParam(value = "friendCircleId",required = false)Integer friendCircleId,
            @RequestParam(value = "memberId",required = false)Integer memberId,
            @RequestParam(value = "parentId",required = false)Integer parentId,
            @RequestParam(value = "comment",required = false)String comment,
            @RequestParam(value = "replyMemberId",required = false)Integer replyMemberId);

服務端

 @RequestMapping(value = "/comment")
 public R comment(@RequestParam(value = "friendCircleId",required = false)Integer friendCircleId,
                  @RequestParam(value = "memberId",required = false)Integer memberId,
                  @RequestParam(value = "parentId",required = false)Integer parentId,
                  @RequestParam(value = "comment",required = false)String comment,
                  @RequestParam(value = "replyMemberId",required = false)Integer replyMemberId
                  ){
  FriendCircleComment friendCircleComment = new FriendCircleComment();
  friendCircleComment.setFriendCircleId(friendCircleId);
  friendCircleComment.setMemberId(memberId);
  friendCircleComment.setParentId(parentId);
  friendCircleComment.setComment(comment);
  friendCircleComment.setReplyMemberId(replyMemberId);
  friendCircleCommentService.comment(friendCircleComment);
  return new R();
}

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

相關文章

  • 配置tjxCold(idea效率插件)的模版教程詳解

    配置tjxCold(idea效率插件)的模版教程詳解

    這篇文章主要介紹了配置tjxCold(idea效率插件)的模版教程詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • java學習筆記之eclipse+tomcat 配置

    java學習筆記之eclipse+tomcat 配置

    俗話說:工欲善其事必先利其器,既然要學習java,首先把java的開發(fā)環(huán)境搗鼓一下吧,這里我們來談談eclipse+tomcat的配置方法。
    2014-11-11
  • Spring Boot利用Thymeleaf發(fā)送Email的方法教程

    Spring Boot利用Thymeleaf發(fā)送Email的方法教程

    spring Boot默認就是使用thymeleaf模板引擎的,下面這篇文章主要給大家介紹了關于在Spring Boot中利用Thymeleaf發(fā)送Email的方法教程,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-08-08
  • spring?cloud?eureka注冊原理-注冊失敗填坑筆記

    spring?cloud?eureka注冊原理-注冊失敗填坑筆記

    這篇文章主要介紹了spring?cloud?eureka注冊原理-注冊失敗填坑筆記,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 使用Java構造和解析Json數據的兩種方法(詳解二)

    使用Java構造和解析Json數據的兩種方法(詳解二)

    這篇文章主要介紹了使用Java構造和解析Json數據的兩種方法(詳解二)的相關資料,需要的朋友可以參考下
    2016-03-03
  • Java日常練習題,每天進步一點點(20)

    Java日常練習題,每天進步一點點(20)

    下面小編就為大家?guī)硪黄狫ava基礎的幾道練習題(分享)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • RestTemplate響應中如何獲取輸入流InputStream

    RestTemplate響應中如何獲取輸入流InputStream

    這篇文章主要介紹了RestTemplate響應中如何獲取輸入流InputStream問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • java8快速實現List轉map 、分組、過濾等操作

    java8快速實現List轉map 、分組、過濾等操作

    這篇文章主要介紹了java8快速實現List轉map 、分組、過濾等操作,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • Java 策略模式與模板方法模式相關總結

    Java 策略模式與模板方法模式相關總結

    這篇文章主要介紹了Java 策略模式與模板方法模式相關總結,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2021-01-01
  • idea中如何全局搜索class文件或者字符串

    idea中如何全局搜索class文件或者字符串

    這篇文章主要介紹了idea中如何實現全局搜索class文件或者字符串問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評論