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

SpringCloud中的Feign遠程調(diào)用接口傳參失敗問題

 更新時間:2022年03月16日 10:28:17   作者:hidecode  
這篇文章主要介紹了SpringCloud中的Feign遠程調(diào)用接口傳參失敗問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Feign遠程調(diào)用接口傳參失敗

我在做一個微服務(wù)調(diào)用的時候出現(xiàn)了被調(diào)接口傳參失敗問題

Feign是通過http協(xié)議調(diào)用服務(wù)的,后來發(fā)現(xiàn)是因為Gep和Maping不一致,還有使用feign時要記得給實體類加無參構(gòu)造注解

同時這些注解都盡量一致,不然微服務(wù)調(diào)bug很麻煩。

這是調(diào)用者

這是feign的client

這是被調(diào)者

Feign遠程調(diào)用的注意點

在使用feign的過程中遇到了一些問題,所以在這里做以下總結(jié):

定義的做遠程調(diào)用的api接口

中的方法參數(shù)列表中的參數(shù)都必須都要打上@RequestParam(“value”) 注解**,否則調(diào)用會報405異常,這一點是和controller中不一樣的,controller中的方法只要參數(shù)名和前臺傳入的參數(shù)鍵名對應(yīng)上就能自動綁定上參數(shù)

復(fù)雜類型用必須打上@RequestBody注解

service微服務(wù)中的Controller的參數(shù)綁定

如果參數(shù)列表中有復(fù)雜類型,請使用Post請求,使用Get請求會報Bad Request錯誤,且需要打上@RequestBody注解,而普通基本類型可以不用打上@RequestParam注解可自動綁定參數(shù)

如有其它問題,也歡迎補充,放一下代碼:

api:

@FeignClient("MS-ADMIN-SERVICE")
public interface FixFeignService {
? ? @GetMapping("/fix")
? ? public List<FixInfo> findAll();
? ? @PostMapping("/fix/add")
? ? public int insert(@RequestBody FixInfo fixInfo);
? ? @PostMapping("/fix/limitByParam")
? ? public LayUIPageBean limitByParam(@RequestBody FixInfo fixInfo, @RequestParam("page") Integer page, @RequestParam("limit") Integer limit);
? ? @PostMapping("/fix/delByIds")
? ? public boolean delByIds(@RequestParam("ids[]") Long[] ids);
? ? @GetMapping("/fix/findById")
? ? public FixInfo findById(@RequestParam("id") Long id);
? ? @PostMapping("/fix/update")
? ? boolean update(@RequestBody FixInfo fixInfo);
}

service微服務(wù)

@RestController
@RequestMapping("/fix")
@Slf4j
public class FixInfoController {
? ? @Autowired
? ? private FixInfoService fixInfoService;
? ? @GetMapping("")
? ? public List<FixInfo> findAll(){
? ? ? ? List<FixInfo> all = fixInfoService.findAll();
? ? ? ? return all;
? ? }
? ? @PostMapping("/add")
? ? public int insert(@RequestBody FixInfo fixInfo){
? ? ? ? return fixInfoService.insert(fixInfo);
? ? }
? ? @PostMapping("/limitByParam")
? ? public LayUIPageBean limitByParam(@RequestBody FixInfo fixInfo,Integer page,Integer limit){
? ? ? ? LayUIPageBean layUIPageBean = new LayUIPageBean();
? ? ? ? PageHelper.startPage(page,limit);
? ? ? ? List<FixInfo> all = fixInfoService.findByParam(fixInfo);
? ? ? ? PageInfo<FixInfo> pageInfo = new PageInfo<>(all);
? ? ? ? return layUIPageBean.setCount((int)pageInfo.getTotal()).setData(pageInfo.getList());
? ? }
? ? @PostMapping("/delByIds")
? ? public boolean delByIds(@RequestParam("ids[]") Long[] ids){
? ? ? ? //log.info("id"+ids[0]);
? ? ? ? boolean flag= fixInfoService.delByIds(ids);
? ? ? ? return flag;
? ? }
? ? @GetMapping("/findById")
? ? public FixInfo findById(Long id){
? ? ? ? return fixInfoService.findById(id);
? ? }
? ? @PostMapping("/update")
? ? public boolean update(@RequestBody FixInfo fixInfo){
? ? ? ?return fixInfoService.update(fixInfo);
? ? }
}

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

相關(guān)文章

  • SpringMVC使用MultipartFile實現(xiàn)文件上傳

    SpringMVC使用MultipartFile實現(xiàn)文件上傳

    這篇文章主要為大家詳細介紹了SpringMVC使用MultipartFile實現(xiàn)文件上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Spring Boot啟動時調(diào)用自己的非web邏輯

    Spring Boot啟動時調(diào)用自己的非web邏輯

    在spring Boot中,有些代碼是WEB功能,例如API等,但是有些邏輯是非WEB,啟動時就要調(diào)用并持續(xù)運行的,該如何加載自己的非WEB邏輯呢,下面通過實例代碼給大家講解,一起看看吧
    2017-07-07
  • Java中StringBuilder字符串類型的操作方法及API整理

    Java中StringBuilder字符串類型的操作方法及API整理

    Java中的StringBuffer類繼承于AbstractStringBuilder,用來創(chuàng)建非線程安全的字符串類型對象,下面即是對Java中StringBuilder字符串類型的操作方法及API整理
    2016-05-05
  • Java+JFrame實現(xiàn)貪吃蛇小游戲

    Java+JFrame實現(xiàn)貪吃蛇小游戲

    這篇文章主要為大家詳細介紹了Java+JFrame實現(xiàn)貪吃蛇小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • fastjson全局日期序列化設(shè)置導(dǎo)致JSONField失效問題解決方案

    fastjson全局日期序列化設(shè)置導(dǎo)致JSONField失效問題解決方案

    這篇文章主要介紹了fastjson通過代碼指定全局序列化返回時間格式,導(dǎo)致使用JSONField注解標注屬性的特殊日期返回格式失效問題的解決方案
    2023-01-01
  • 一次詭異的full gc查找問題全過程

    一次詭異的full gc查找問題全過程

    這篇文章主要給大家分享介紹了一次詭異的full gc查找問題全部過程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧啊
    2018-11-11
  • JAVA 創(chuàng)建線程池的注意事項

    JAVA 創(chuàng)建線程池的注意事項

    這篇文章主要介紹了JAVA 創(chuàng)建線程池的注意事項,文中講解非常細致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 關(guān)于springboot中的SPI機制

    關(guān)于springboot中的SPI機制

    這篇文章主要介紹了springboot中的SPI機制,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java內(nèi)部類的使用教程詳解

    Java內(nèi)部類的使用教程詳解

    在Java中,有些類可以被定義在另一個類的內(nèi)部,我們把在一個類里面定義的類稱為內(nèi)部類。本文主要介紹了Java內(nèi)部類的使用,需要的可以參考一下
    2023-04-04
  • Springboot如何基于assembly服務(wù)化實現(xiàn)打包

    Springboot如何基于assembly服務(wù)化實現(xiàn)打包

    這篇文章主要介紹了Springboot如何基于assembly服務(wù)化實現(xiàn)打包,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06

最新評論