Feign傳參與Spring MVC的一些區別

2021-10-23 07:14:37 字數 1508 閱讀 8798

當我們開發spring cloud專案時,大部分使用openfeign作為網路請求客戶端。而openfeign使用的註解都是使用的spring mvc的註解,這極大的降低了學習成本,但是openfeign又和spring mvc的請求又有諸多不同。在降低了學習成本的同時,帶來了一些困擾。當我們理所應當的使用spring mvc傳遞引數時,openfein卻不一定理睬我們。這篇文章的主要目標就是理清楚openfeign傳參時區別於spring mvc的地方,讓我們能更好的使用openfeign

當引數為時間,不能使用@requestparam("paymentdate") date paymentdate傳遞

(value =

"/updategrouppurchaseinfo"

)void

updategrouppurchaseinfo

(@requestparam

("orderid"

) long orderid,

@requestparam

("paymentdate"

) date paymentdate)

;正確的是將時間包裹在物件中

(value =

"/updategrouppurchaseinfo"

)void

updategrouppurchaseinfo

(@requestbody updategrouppurchaseinforeqdto updategrouppurchaseinforeqdto)

;集合list,set等作為方法引數時,必須指定例項型別(例如:arraylist),不能用介面型別(例如:list),用陣列也可以

不能傳遞複雜的map型別,比如map裡包含map(例如:map

引數為@requestbody時,實現必須加@requestbody,否則引數為null

引數為@requestparam時,必須指定引數名稱,即使@requestparam("orderid")與物件的名稱一致。

當註解為@requestparam("orderid") long oid, 註解名稱與引數名稱不一致時,實現方法也必須新增@requestparam("orderid")

引數為@pathvariable時,必須指定引數名稱 介面和介面的實現方法必須都加註解。 例如:@pathvariable("zoneid") integer zoneid

問號傳參與路徑傳參

需要使用問號來拼接引數,在接受方,使用request.getparameter key 來獲取問號所傳遞過來的值,如果資料型別不為string,還需要手動轉換。可以傳遞多個值,如果使用多個值,使用 來拼接,不會改變路徑級別 使用路徑符號來傳遞引數,優點,可以不用做型別轉換來直接獲取其值。路徑傳參也可...

Feign的傳參研究

最近在將乙個springbbot分布式sso工程改造成基於springcloud的微服務工程 在feign端消費服務的時候傳引數時候出現了一些問題,然後查了些資料,自己總結了下。特意記錄下。關於feign消費服務時候get post方式,單參,多參,可以看如下這篇文章 這篇文章講解的很詳細,主要分析...

vue鏈結傳參與路由傳參

1 鏈結傳參 我們要獲取引數 console.log this.route.query.id 即可 2 路由傳參 一 顯示在url中 main.js params傳值是通過 引數值 如path home game num 例 父元件路由跳轉寫法 to 子元件取路由引數 通過 this.route.p...