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

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

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

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

總體說明

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

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

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

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

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

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

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

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

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

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

下面進行詳細說明

無參:

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

不指定method,則默認為get,等同于

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

單參:

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

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

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

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

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

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

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

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

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

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

多參:

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

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

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

等同于

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

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

如:

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

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

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

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

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

    mybatis?plus中如何編寫sql語句

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

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

    QSV是一種加密的視頻文件格式。是愛奇藝公司研發(fā)的一種視頻文件格式,這篇文章主要為大家介紹了如何利用Java實現(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遠程代碼執(zhí)行漏洞(附解決方法)

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

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

最新評論

屏东市| 南华县| 红安县| 阜南县| 长寿区| 库尔勒市| 灵台县| 山西省| 上饶市| 淮滨县| 大渡口区| 崇左市| 亳州市| 丰城市| 巫山县| 宜君县| 洞口县| 辉南县| 岑巩县| 龙泉市| 哈密市| 无棣县| 高邑县| 云安县| 阿拉尔市| 南雄市| 西宁市| 铁力市| 新化县| 宝鸡市| 安仁县| 新津县| 二连浩特市| 北川| 兴城市| 仙游县| 寿宁县| 辽阳县| 武川县| 修水县| 科尔|