當前位置:
首頁 > 最新 > spring mvc 中的數據綁定進階篇

spring mvc 中的數據綁定進階篇

今天的主題是一個熟悉java的你,基本天天用到的一個註解:@RequestBody

思考

這個註解的作用是什麼

同樣的請求,加上註解和不加區別是什麼

對於這個註解的處理過程,我們可以通過什麼方式參與進去

實驗

示例代碼

請求方式:POST

請求報文頭:Content-Type:application/json

請求報文體:{"name":"seven","age":20}

結果

解析

源碼解析(部分源碼)

看到源碼,應該早已經明白大半了,RequestResponseBodyMethodProcessor 是專門用來處理RequestBody註解的

Object arg = readWithMessageConverters(webRequest, parameter, parameter.getNestedGenericParameterType());說明spring根據請求類型,選擇合適的消息處理器來處理消息的,

我們再來看下消息處理器的處理流程,如下

消息處理流程

根據contentType選擇消息處理器

真正讀取請求體前,執行beforeBodyRead

根據參數類型,讀取消息體,並轉化對應的參數類型

讀取消息後,執行afterBodyRead

那麼我們是否可以就應該可以參與到beforeBodyRead和afterBodyRead中去,當然,讀取消息是根據contentType來的,我們也可以通過自定義HttpMessageConverter來讓指定的contentType走我們自定義的消息轉換器

微信公眾號:宋坤明

如果您覺得對您有所幫助,記得轉發點贊哦

如有問題或建議,請公眾號留言或者直接微信聯繫我

下面的是我的公眾號二維碼圖片,歡迎關注我。

圖注:宋坤明公眾號


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 宋坤明 的精彩文章:

TAG:宋坤明 |