最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2021年07月09日 10:02:38   作者:未完成交響曲-KyleWang  
這篇文章主要介紹了SpringCloud 如何使用feign時(shí)的復(fù)雜參數(shù)傳遞方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Feign傳參注意

最近在用SpringCloud嘗試重構(gòu)以前的項(xiàng)目,使用Feign客戶端組件來(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類似注解聲明請(qǐng)求,需使用

@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的依賴和配置和后續(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ì)象

@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);
    }
}

客戶端(消費(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)聲明

@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層

@FeignClient(value = "transaction-feign")
    public interface TransactionApiService {
        /**
         * 交易流水查詢 可分頁(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);
    }

接口層

/**
 * 交易流水查詢 可分頁(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/***

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

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

相關(guān)文章

  • Spring事務(wù)事件監(jiān)控的實(shí)現(xiàn)

    Spring事務(wù)事件監(jiān)控的實(shí)現(xiàn)

    這篇文章主要介紹了Spring事務(wù)事件監(jiān)控的實(shí)現(xiàn)。本文首先會(huì)使用實(shí)例進(jìn)行講解Spring事務(wù)事件是如何使用的,然后會(huì)講解這種使用方式的實(shí)現(xiàn)原理。感興趣的小伙伴們可以參考一下
    2018-10-10
  • java實(shí)現(xiàn)微信企業(yè)付款到個(gè)人功能

    java實(shí)現(xiàn)微信企業(yè)付款到個(gè)人功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)微信企業(yè)付款到個(gè)人功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 實(shí)例解析Java設(shè)計(jì)模式編程中的適配器模式使用

    實(shí)例解析Java設(shè)計(jì)模式編程中的適配器模式使用

    本篇文章主要通過(guò)實(shí)例對(duì)適配器模式進(jìn)行了詳解,需要的朋友可以參考下
    2017-04-04
  • Spring輕松解決循環(huán)依賴

    Spring輕松解決循環(huán)依賴

    Spring的解決循環(huán)依賴是有前置條件的,要解決循環(huán)依賴我們首先要了解Spring Bean對(duì)象的創(chuàng)建過(guò)程和依賴注入的方式。依賴注入方式,我之前的博客有所分享,大家可以在看本篇文章之前進(jìn)行一下小小的回顧
    2023-04-04
  • 詳解SpringBoot是如何整合JPA的

    詳解SpringBoot是如何整合JPA的

    借助于開(kāi)發(fā)框架,我們已經(jīng)不用編寫(xiě)原始的訪問(wèn)數(shù)據(jù)庫(kù)的代碼,也不用調(diào)用JDBC或者連接池等諸如此類的被稱作底層的代碼,我們將從更高的層次上訪問(wèn)數(shù)據(jù)庫(kù),本章我們將詳細(xì)介紹在Springboot中使用 Spring Data JPA 來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作,需要的朋友可以參考下
    2021-06-06
  • SpringBoot下載文件的實(shí)現(xiàn)及速度對(duì)比

    SpringBoot下載文件的實(shí)現(xiàn)及速度對(duì)比

    這篇文章主要介紹了SpringBoot下載文件的實(shí)現(xiàn)及速度對(duì)比,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java實(shí)現(xiàn)HashMap排序方法的示例詳解

    Java實(shí)現(xiàn)HashMap排序方法的示例詳解

    這篇文章主要通過(guò)一些示例為大家介紹了Java對(duì)HashMap進(jìn)行排序的方法,幫助大家更好的理解和使用Java,感興趣的朋友可以了解一下
    2022-05-05
  • mybatis攔截器及不生效的解決方法

    mybatis攔截器及不生效的解決方法

    本文主要介紹了mybatis攔截器及不生效的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Java如何從List中刪除元素的正確用法舉例

    Java如何從List中刪除元素的正確用法舉例

    這篇文章主要給大家介紹了關(guān)于Java如何從List中刪除元素的正確用法, 列表List是Java中的一種數(shù)據(jù)結(jié)構(gòu),存放按照添加順序的元素,是個(gè)有序的集合,需要的朋友可以參考下
    2023-07-07
  • Spring條件注解@ConditionnalOnClass的原理分析

    Spring條件注解@ConditionnalOnClass的原理分析

    這篇文章主要介紹了Spring條件注解@ConditionnalOnClass的原理分析,所謂@ConditionalOnClass注解,翻譯過(guò)來(lái)就是基于class的條件,它為所標(biāo)注的類或方法添加限制條件,當(dāng)該條件的值為true時(shí),其所標(biāo)注的類或方法才能生效,需要的朋友可以參考下
    2023-12-12

最新評(píng)論

云林县| 镇巴县| 肥城市| 区。| 潮安县| 杭锦旗| 郴州市| 平定县| 上思县| 青海省| 佛教| 临安市| 沾益县| 呼和浩特市| 哈尔滨市| 金乡县| 扶余县| 大同县| 凌海市| 行唐县| 兰坪| 抚宁县| 巫溪县| 邵东县| 穆棱市| 台北市| 浦县| 沁水县| 个旧市| 东阳市| 临夏市| 靖安县| 石楼县| 醴陵市| 桃园县| 尤溪县| 尉犁县| 深圳市| 萨嘎县| 丰县| 阳山县|