當我們開發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...