一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - SpringCloud 如何使用feign時(shí)的復(fù)雜參數(shù)傳遞

SpringCloud 如何使用feign時(shí)的復(fù)雜參數(shù)傳遞

2021-09-30 10:36未完成交響曲-KyleWang Java教程

這篇文章主要介紹了SpringCloud 如何使用feign時(shí)的復(fù)雜參數(shù)傳遞方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Feign傳參注意

最近在用SpringCloud嘗試重構(gòu)以前的項(xiàng)目,使用Feign客戶(hù)端組件來(lái)調(diào)用微服務(wù),經(jīng)常出現(xiàn)參數(shù)傳不過(guò)去變成null的問(wèn)題,網(wǎng)上查了一下發(fā)現(xiàn)feign在參數(shù)上的使用還是有一定的限制的,主要是要注意:

1. 當(dāng)參數(shù)比較復(fù)雜時(shí),feign即使聲明為get請(qǐng)求也會(huì)強(qiáng)行使用post請(qǐng)求

2. 不支持@GetMapping類(lèi)似注解聲明請(qǐng)求,需使用

?
1
@RequestMapping(value = "url",method = RequestMethod.GET)

3. 使用@RequestParam注解時(shí)必須要在后面加上參數(shù)名

寫(xiě)了一個(gè)簡(jiǎn)單案例,同時(shí)傳輸一個(gè)對(duì)象和一個(gè)字符串作為請(qǐng)求參數(shù),主要關(guān)注參數(shù)的聲明,其余比如eureka和feign的依賴(lài)和配置和后續(xù)使用相關(guān)的知識(shí)請(qǐng)另行查閱。僅供參考

服務(wù)端(生產(chǎn)者)

準(zhǔn)備:

1. 已經(jīng)配置將服務(wù)注冊(cè)在eureka,服務(wù)名為“item-service”

2. service層和dao層已經(jīng)實(shí)現(xiàn)好了

邏輯:ItemController接收參數(shù),調(diào)用service層,service中為商品Item對(duì)象添加詳情desc,然后調(diào)用dao保存Item對(duì)象,返回Result結(jié)果封裝對(duì)象

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@RestController
public class ItemController {
    @Autowired
    private ItemService itemService;
 
    /**
     * 添加
     * @param item
     * @param desc
     * @return
     */
    @RequestMapping("/item/save")
    public Result addItem(@RequestBody Item item, @RequestParam("desc") String desc){
        return itemService.addItem(item, desc);
    }
}

客戶(hù)端(消費(fèi)者)

準(zhǔn)備: 已經(jīng)配置注冊(cè)到eureka

邏輯:

聲明ItemFeignClient調(diào)用eureka上名為"item-service"的服務(wù),返回Result對(duì)象

使用Post請(qǐng)求,傳遞兩個(gè)參數(shù):

1. TbItem對(duì)象,使用@RequestBody來(lái)聲明

2. String字符串,使用@RequestParam("xxx")來(lái)聲明

?
1
2
3
4
5
6
7
8
9
10
11
@FeignClient("item-service")
public interface ItemFeignClient {
 
    /**
     * 添加
     * @param item
     * @param desc
     * @return
     */
    @RequestMapping(value = "/item/save",method = RequestMethod.POST)
    Result addItem(@RequestBody TbItem item, @RequestParam("desc") String desc);

SpringCloud feign參數(shù)傳遞問(wèn)題記錄

對(duì)象傳遞 @RequestBody(required = false)

不支持多對(duì)象傳遞,至少我目前發(fā)現(xiàn)是這樣的,如有錯(cuò)誤或者改進(jìn)的方法請(qǐng)?zhí)岢?/p>

API層

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@FeignClient(value = "transaction-feign")
    public interface TransactionApiService {
        /**
         * 交易流水查詢(xún) 可分頁(yè)
         *
         * @param param
         * @param pageNum
         * @param pageSize
         * @return
         */
        @RequestMapping(value = "/dealflow/list", method = RequestMethod.POST)
        JsonResultDO dealFlowList(@RequestBody(required = false) DealFlowDo param
                , @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum
                , @RequestParam(value = "pageSize", defaultValue = "20") Integer pageSize);
    }

接口層

?
1
2
3
4
5
6
7
8
9
10
11
12
13
/**
 * 交易流水查詢(xún) 可分頁(yè)
 * @return JsonResultDO
 */
@RequestMapping(value = "/dealflow/list", method = RequestMethod.POST)
public Page<DealFlowDo> dealFlowList(@RequestBody(required = false) DealFlowDo param
        , @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum
        , @RequestParam(value = "pageSize", defaultValue = "20") Integer pageSize
        , @RequestParam(value = "userId") Long userId){
    JsonResultDO resultDO = new JsonResultDO();
    Page<DealFlowDo> page = (Page<DealFlowDo> )dealFlowService.queryDealFlowList(userId, param, pageNum, pageSize);
    return page;
}

單個(gè)或多個(gè)參數(shù)傳遞 @RequestParam/@PathVariable/***

?
1
2
3
4
5
6
7
8
/**
  * 根據(jù)商戶(hù)號(hào)獲取商戶(hù)信息
  *
  * @param merNo
  * @return
  */
 @RequestMapping(value = "/merchant/{merNo}", method = RequestMethod.GET)
 String getMerchantByMerNo(@PathVariable("merNo") String merNo);

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/wk52525/article/details/79183113

延伸 · 閱讀

精彩推薦
  • Java教程20個(gè)非常實(shí)用的Java程序代碼片段

    20個(gè)非常實(shí)用的Java程序代碼片段

    這篇文章主要為大家分享了20個(gè)非常實(shí)用的Java程序片段,對(duì)java開(kāi)發(fā)項(xiàng)目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程Java8中Stream使用的一個(gè)注意事項(xiàng)

    Java8中Stream使用的一個(gè)注意事項(xiàng)

    最近在工作中發(fā)現(xiàn)了對(duì)于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個(gè)非常重要的注意點(diǎn),所以這篇文章主要給大家介紹了關(guān)于Java8中S...

    阿杜7472021-02-04
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧...

    富貴穩(wěn)中求8032021-07-12
  • Java教程xml與Java對(duì)象的轉(zhuǎn)換詳解

    xml與Java對(duì)象的轉(zhuǎn)換詳解

    這篇文章主要介紹了xml與Java對(duì)象的轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下...

    Java教程網(wǎng)2942020-09-17
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程Java BufferWriter寫(xiě)文件寫(xiě)不進(jìn)去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫(xiě)文件寫(xiě)不進(jìn)去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫(xiě)文件寫(xiě)不進(jìn)去或缺失數(shù)據(jù)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程升級(jí)IDEA后Lombok不能使用的解決方法

    升級(jí)IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級(jí),尋思已經(jīng)有好久沒(méi)有升過(guò)級(jí)了。升級(jí)完畢重啟之后,突然發(fā)現(xiàn)好多錯(cuò)誤,本文就來(lái)介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java實(shí)現(xiàn)搶紅包功能

    Java實(shí)現(xiàn)搶紅包功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)搶紅包功能,采用多線程模擬多人同時(shí)搶紅包,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙...

    littleschemer13532021-05-16
主站蜘蛛池模板: 男人看的网址 | 日韩版码免费福利视频 | 日韩日韩日韩手机看片自拍 | 欧美日韩中文国产一区二区三区 | 日韩亚洲人成在线综合 | 欧美男女爱爱视频 | 奇米色88欧美一区二区 | 日韩免费一级 | 亚洲欧洲色图 | 国产三级精品91三级在专区 | 色佬头| 国产成人精品高清不卡在线 | 成人免费视频一区二区三区 | 欧美在线视频一区二区 | 国产精品视频一区二区三区w | 亚洲好视频 | 精品国产成人 | 亚洲精品福利你懂 | 情侣宾馆愉拍自拍视频 | 亚洲国产欧美目韩成人综合 | 明星乱亚洲 | 亚洲狠狠婷婷综合久久蜜桃 | 大又大又粗又爽女人毛片 | 日本在线观看www免费 | 日本 视频 在线 | 亚洲AV蜜桃永久无码精品红樱桃 | 日韩精品视频福利资源站 | 欧美另类性xxoo | 精精国产www视频在线观看免费 | 婷婷激情综合五月天 | 国产日韩欧美一区 | 天天操夜夜操狠狠操 | 欧美日韩精品一区二区三区视频 | 成人日批视频 | 国产午夜成人无码免费看 | 九九在线免费视频 | 调教禽兽 | 亚洲大片在线观看 | 毛片一级免费 | 91麻豆精品国产自产在线 | 精品9e精品视频在线观看 |