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

使用Feign消費(fèi)服務(wù)時POST/GET請求方式詳解

 更新時間:2021年06月24日 17:22:07   作者:justry_deng  
這篇文章主要介紹了使用Feign消費(fèi)服務(wù)時POST/GET請求方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

聲明:本結(jié)論基于Spring Cloud Dalston.RC1、Spring Boot1.5.2.RELEASE。

總體說明

feign消費(fèi)服務(wù)時,以GET方式請求的條件:

如果想讓服務(wù)消費(fèi)者采用GET方式調(diào)用服務(wù)提供者,那么需要:

  1. 服務(wù)消費(fèi)者這邊f(xié)eign調(diào)用時,在所有參數(shù)前加上@RequestParam注解。
  2. 服務(wù)消費(fèi)者這邊f(xié)eign調(diào)用時,指明為GET方式(注:如果不指明method,那么在條件1滿足的情況下,采用的是默認(rèn)的GET方式)。

注:這里條件1和條件2,是“且”的關(guān)系(都滿足時,才為GET)

feign消費(fèi)服務(wù)時,以POST方式請求的條件:

如果想讓服務(wù)消費(fèi)者采用POST方式調(diào)用服務(wù)提供者,那么只需要:

  1. 服務(wù)消費(fèi)者這邊f(xié)eign調(diào)用時,在所有參數(shù)前加上@RequestParam注解,并指明feign消費(fèi)服務(wù)的方式為POST。
  2. 服務(wù)消費(fèi)者這邊f(xié)eign調(diào)用時,有且只有一個參數(shù)前為@RequestBody或什么也沒有(如果有多個參數(shù),那么其余參數(shù)前必須有@RequestParam)。

注:這里條件1和條件2,是“或”的關(guān)系(當(dāng)至少一個滿足時,即為POST)

注:在服務(wù)消費(fèi)者中,使用feign消費(fèi)服務(wù)時,如果參數(shù)前什么也不寫,那么默認(rèn)是由@RequestBody指明的。

即:只要不滿足GET方式請求,那么POST方式請求是一定支持的

下面進(jìn)行詳細(xì)說明

無參:

服務(wù)消費(fèi)者以GET方式請求消費(fèi)服務(wù)的情況(示例):

不指定method,則默認(rèn)為get,等同于

服務(wù)消費(fèi)者以POST方式請求消費(fèi)服務(wù)的情況(示例):

單參:

服務(wù)消費(fèi)者以GET方式請求消費(fèi)服務(wù)的情況(示例):

參數(shù)前使用了@RequestParam,且指明了用GET方式

等同于(當(dāng)所有參數(shù)前都有@RequestParam時,這時不指明method,則默認(rèn)為采用GET方式):

服務(wù)消費(fèi)者以POST方式請求消費(fèi)服務(wù)的情況(示例):

  • 參數(shù)前使用了@RequestParam,且指明了用POST方式

  • 參數(shù)前未使用@RequestParam或參數(shù)前使用了@RequestBody注解(此時不論是否手動指定請求方式、不論指定的方式是POST還是GET,那么最終都以POST方式消費(fèi)服務(wù))

注:在服務(wù)消費(fèi)者中,使用feign消費(fèi)服務(wù)時,如果參數(shù)前什么也不寫,那么默認(rèn)是由@RequestBody指明的。

注:@RequestBody注解的參數(shù),需要POST方式才能傳遞數(shù)據(jù)。

注:在服務(wù)提供者的Controller中,

  • 如果要接收(服務(wù)消費(fèi)中傳過來的)被@RequestBody指明的參數(shù),那么對應(yīng)方法的對應(yīng)參數(shù)前一定要有@RequestBody;(如果沒有的話,收到的參數(shù)值就為null;如果寫成@RequestParam的話,那么feign調(diào)用會失敗)
  • 如果要接收(服務(wù)消費(fèi)中傳過來的)被@RequestParam指明的參數(shù),那么可以寫@RequestParam,也可以不寫(當(dāng)服務(wù)提供者中對應(yīng)的參數(shù)名字與服務(wù)消費(fèi)者傳過來的參數(shù)名字一致時,可以不寫,不一致時,需要寫)

多參:

服務(wù)消費(fèi)者以GET方式請求消費(fèi)服務(wù)的情況(示例):

如果想讓服務(wù)消費(fèi)者采用GET方式調(diào)用服務(wù)提供者,那么需要:

  1. 服務(wù)消費(fèi)者這邊f(xié)eign調(diào)用時,在所有參數(shù)前加上@RequestParam注解。
  2. 服務(wù)消費(fèi)者這邊f(xié)eign調(diào)用時,指明為GET方式(注:如果不指明method,那么在條件1滿足的情況下,默認(rèn)采用的也是GET方式)。

等同于

服務(wù)消費(fèi)者以POST方式請求消費(fèi)服務(wù)的情況(示例):

多參數(shù)時,如果服務(wù)消費(fèi)者想采用POST進(jìn)行feign調(diào)用,那么:服務(wù)消費(fèi)者中該接口方法里的這些參數(shù)前,最多只能有一個參數(shù)是@RequestBody指明的,其余的參數(shù)必須使用@RequestParam指明。

如:

等同于(String name 這個參數(shù)前什么也不寫,那么默認(rèn)的即為@RequestBody)

如果服務(wù)消費(fèi)者這邊f(xié)eign調(diào)用時,所有參數(shù)前面都使用了@RequestParam注解時,但是指明的是POST方式,那么最終還是以POST方式進(jìn)行的:

服務(wù)提供者接收時:

  • 如果服務(wù)消費(fèi)者傳過來參數(shù)時,全都用的是@RequestParam的話,那么服務(wù)提供者的Controller中對應(yīng)參數(shù)前可以寫@RequestParam,也可以不寫(當(dāng)兩邊參數(shù)名字一致時,可以省略不寫)
  • 如果服務(wù)消費(fèi)者傳過來參數(shù)時,有@RequestBody的話,那么服務(wù)提供者的Controller中對應(yīng)參數(shù)前必須要寫@RequestBody(如果是多參數(shù)的話,其余參數(shù)前視情況可以寫@RequestParam,也可以不寫)

注意:如果接口與接口的實(shí)現(xiàn)分別處于兩個服務(wù)中,那么接口就相當(dāng)于服務(wù)消費(fèi)者,而接口的實(shí)現(xiàn)則相當(dāng)于服務(wù)提供者。兩者之間仍然滿足本文上所述要求。如:

服務(wù)消費(fèi)者中的接口是這樣的:

那么對應(yīng)的服務(wù)提供者中的Controller應(yīng)該是這樣的:

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

相關(guān)文章

  • SpringBoot SSE服務(wù)端主動推送事件的實(shí)現(xiàn)

    SpringBoot SSE服務(wù)端主動推送事件的實(shí)現(xiàn)

    本文主要介紹了SpringBoot SSE服務(wù)端主動推送事件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • java的Builder原理和實(shí)現(xiàn)詳解

    java的Builder原理和實(shí)現(xiàn)詳解

    大家好,本篇文章主要講的是java的Builder原理和實(shí)現(xiàn)詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Springboot事務(wù)失效的幾種情況解讀

    Springboot事務(wù)失效的幾種情況解讀

    這篇文章主要介紹了Springboot事務(wù)失效的幾種情況解讀,因?yàn)镾pring AOP默認(rèn)使用動態(tài)代理,會給被代理的類生成一個代理類,事務(wù)相關(guān)的操作都通過代理來完成,使用內(nèi)部方法調(diào)用時,使用的是實(shí)例調(diào)用,沒有通過代理類調(diào)用方法,因此事務(wù)不會檢測到失敗,需要的朋友可以參考下
    2023-10-10
  • RocketMQ中的消息發(fā)送與消費(fèi)詳解

    RocketMQ中的消息發(fā)送與消費(fèi)詳解

    這篇文章主要介紹了RocketMQ中的消息發(fā)送與消費(fèi)詳解,RocketMQ是一款高性能、高可靠性的分布式消息中間件,消費(fèi)者是RocketMQ中的重要組成部分,消費(fèi)者負(fù)責(zé)從消息隊列中獲取消息并進(jìn)行處理,需要的朋友可以參考下
    2023-10-10
  • 利用Java代碼寫一個并行調(diào)用模板

    利用Java代碼寫一個并行調(diào)用模板

    這篇文章主要介紹了利用Java代碼寫一個并行調(diào)用模板,文章基于Java的相關(guān)內(nèi)容展開寫一個并行調(diào)用模板的詳細(xì)介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • SpringBoot中使用JeecgBoot的Autopoi導(dǎo)出Excel的方法步驟

    SpringBoot中使用JeecgBoot的Autopoi導(dǎo)出Excel的方法步驟

    這篇文章主要介紹了SpringBoot中使用JeecgBoot的Autopoi導(dǎo)出Excel的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • mybatis?plus中如何編寫sql語句

    mybatis?plus中如何編寫sql語句

    這篇文章主要介紹了mybatis?plus中如何編寫sql語句,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Java實(shí)現(xiàn)提取QSV文件視頻內(nèi)容

    Java實(shí)現(xiàn)提取QSV文件視頻內(nèi)容

    QSV是一種加密的視頻文件格式。是愛奇藝公司研發(fā)的一種視頻文件格式,這篇文章主要為大家介紹了如何利用Java實(shí)現(xiàn)提取QSV文件視頻內(nèi)容,感興趣的可以了解一下
    2023-03-03
  • 關(guān)于spring三級緩存的解讀

    關(guān)于spring三級緩存的解讀

    Spring三級緩存解決循環(huán)依賴、AOP和多線程問題,包括singletonObjects、earlySingletonObjects和singletonFactories三層緩存,通過不同方法獲取bean并解決這些問題
    2025-02-02
  • 最新log4j2遠(yuǎn)程代碼執(zhí)行漏洞(附解決方法)

    最新log4j2遠(yuǎn)程代碼執(zhí)行漏洞(附解決方法)

    Apache?Log4j2?遠(yuǎn)程代碼執(zhí)行漏洞攻擊代碼,該漏洞利用無需特殊配置,經(jīng)多方驗(yàn)證,Apache?Struts2、Apache?Solr、Apache?Druid、Apache?Flink等均受影響,本文就介紹一下解決方法
    2021-12-12

最新評論

沙雅县| 鄂温| 会宁县| 兰州市| 铅山县| 浏阳市| 那坡县| 那坡县| 麟游县| 门头沟区| 阿坝| 津市市| 大城县| 赣州市| 巫山县| 彝良县| 镇康县| 永顺县| 义马市| 蒙城县| 繁昌县| 中牟县| 乐平市| 鄂尔多斯市| 璧山县| 泰顺县| 顺义区| 龙州县| 东港市| 陇南市| 都匀市| 西青区| 浏阳市| 博乐市| 黄平县| 法库县| 霍邱县| 乐至县| 和静县| 平邑县| 凤庆县|