SpringCloud組件OpenFeign之默認HTTP請求方式詳解
OpenFeign的默認HTTP請求方式
OpenFeign相較于Feign新增了對SpringMvc的支持,通過以下方式可以調用服務端對應的方法。
但是如果使用@RequestMapping注解不指定請求方式時,通過客戶端打印的OpenFein日志可以看出,客戶端都是使用的GET請求。
只有使用@PostMapping或者@RequestMapping中指定請求類型@RequestMapping(method = RequestMethod.POST)發(fā)送的才是POST請求。
那么使用@RequestMapping()時OpenFiegn默認是使用GET請求?
OK,問題的答案還需要從OpenFeign的源碼中查找。
在SpringMvcContract類中有個這樣的方法processAnnotationOnMethod。
見名思意,這個方法就是處理Feign接口下方法上的注解的。
與本問題相關的關鍵代碼為上圖中第218~225行,粘貼以下并添加注解。
// 獲取指定方法上的RequestMapping注解信息 RequestMapping methodMapping = findMergedAnnotation(method, RequestMapping.class); // 指定方法上的RequestMapping注解信息method屬性的屬性值數(shù)組 RequestMethod[] methods = methodMapping.method(); // 如果沒有設置請求方式,那么默認創(chuàng)建GET請求 if (methods.length == 0) { methods = new RequestMethod[] { RequestMethod.GET }; } // 校驗是否只有一種請求方式 checkOne(method, methods, "method"); // 若是則將RequestMethod.GET作為該方法的請求方式,并存放到RequestTemplate中template的method中供后續(xù)處理并使用 data.template().method(Request.HttpMethod.valueOf(methods[0].name()));
所以,如果@FeignClient注解修飾的接口中使用@RequestMapping且不指定請求方式,那么默認是使用GET請求的。
到此這篇關于SpringCloud組件OpenFeign之默認HTTP請求方式詳解的文章就介紹到這了,更多相關OpenFeign的默認HTTP請求方式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
springboot多模塊多環(huán)境配置文件問題(動態(tài)配置生產和開發(fā)環(huán)境)
這篇文章主要介紹了springboot多模塊多環(huán)境配置文件問題(動態(tài)配置生產和開發(fā)環(huán)境),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04SpringBoot整合RabbitMQ 手動應答(簡單demo)
這篇文章主要介紹了SpringBoot整合RabbitMQ 手動應答 簡單demo,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01springBoot前后端分離項目中shiro的302跳轉問題
這篇文章主要介紹了springBoot前后端分離項目中shiro的302跳轉問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12