日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot消息转换器:HttpMessageConverter

發布時間:2024/3/7 javascript 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot消息转换器:HttpMessageConverter 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 消息轉化器的作用
  • 消息轉化器的主要方法
  • 默認配置的消息轉化器
  • 注意事項


在整個數據流轉過程中,前端的請求報文轉化為Java對象,Java對象轉化為響應報文,這里就用到了HttpMessageConverter(消息轉換器)。

消息轉化器的作用

  • 將請求報文轉化為Java對象
  • 將Java對象轉化為響應報文
  • 消息轉化器的主要方法

    • getSupportedMediaTypes:獲取支持的MediaType集合(如:text/html,text/plain,application/json)
    • canRead:判斷是否能讀(請求)
    • read:將請求數據進行格式轉換(canRead方法返回值為true時調用)
    • canWrite:判斷是否能寫(響應)
    • write:將響應數據進行格式轉換(canWrite方法返回值為true時調用)

    默認配置的消息轉化器

    SpringMVC啟動時會自動配置一些HttpMessageConverter(WebMvcConfigurationSupport類的addDefaultHttpMessageConverters)方法

    源碼如下:

    protected final void addDefaultHttpMessageConverters(List<HttpMessageConverter<?>> messageConverters) {messageConverters.add(new ByteArrayHttpMessageConverter());messageConverters.add(new StringHttpMessageConverter());messageConverters.add(new ResourceHttpMessageConverter());messageConverters.add(new ResourceRegionHttpMessageConverter());try {messageConverters.add(new SourceHttpMessageConverter<>());}catch (Throwable ex) {// Ignore when no TransformerFactory implementation is available...}messageConverters.add(new AllEncompassingFormHttpMessageConverter());if (romePresent) {messageConverters.add(new AtomFeedHttpMessageConverter());messageConverters.add(new RssChannelHttpMessageConverter());}if (jackson2XmlPresent) {Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.xml();if (this.applicationContext != null) {builder.applicationContext(this.applicationContext);}messageConverters.add(new MappingJackson2XmlHttpMessageConverter(builder.build()));}else if (jaxb2Present) {messageConverters.add(new Jaxb2RootElementHttpMessageConverter());}if (jackson2Present) {Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.json();if (this.applicationContext != null) {builder.applicationContext(this.applicationContext);}messageConverters.add(new MappingJackson2HttpMessageConverter(builder.build()));}else if (gsonPresent) {messageConverters.add(new GsonHttpMessageConverter());}else if (jsonbPresent) {messageConverters.add(new JsonbHttpMessageConverter());}if (jackson2SmilePresent) {Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.smile();if (this.applicationContext != null) {builder.applicationContext(this.applicationContext);}messageConverters.add(new MappingJackson2SmileHttpMessageConverter(builder.build()));}if (jackson2CborPresent) {Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.cbor();if (this.applicationContext != null) {builder.applicationContext(this.applicationContext);}messageConverters.add(new MappingJackson2CborHttpMessageConverter(builder.build()));}}

    部分消息轉換器解析

    名稱描述
    MappingJackson2HttpMessageConverter負責讀、寫JSON格式數據(利用Jackson)
    AllEncompassingFormHttpMessageConverter負責讀、寫Form表單數據
    Jaxb2RootElementHttpMessageConverter負責讀、寫XML格式數據(使用JAXB)
    ByteArrayHttpMessageConverter負責讀、寫二進制格式數據
    StringHttpMessageConverter負責讀、寫字符串格式數據
    ResourceHttpMessageConverter負責讀、寫資源文件數據
    SourceHttpMessageConverter負責讀、寫資源數據

    注意事項

  • 系統有默認配置的消息轉換器集合。

  • 處理過程會按集合順序匹配合適的消息轉換器,如果有合適的,就會使用該消息轉換器處理(讀、寫),后續的消息轉換器不再執行。

  • 自定義的消息轉換器要想生效,必須放到集合中相同類型的消息轉換器前面,原因參考第二點。

    思考:既然自定義的消息轉換器必須放到集合中相同類型的消息轉換器前面,那是否能直接改動集合中原有的消息轉換器來達到自定義的效果,而不必在加一個(暫未沒研究)。

  • 添加自定義消息轉換器時注意默認消息轉換器是否生效

  • WebMvcConfigurer.configureMessageConverters方法會覆蓋默認消息轉換器集合
  • WebMvcConfigurer.extendMessageConverters方法不會覆蓋默認消息轉換器集合
  • 總結

    以上是生活随笔為你收集整理的SpringBoot消息转换器:HttpMessageConverter的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 一级片黄色 | 欧美123| 免费视频www在线观看网站 | 美女下部无遮挡 | 肉色丝袜脚交一区二区 | 美女又爽又黄免费视频 | www在线播放| 99热激情| 欧美乱欲视频 | 1级av| 久久bb| 午夜小影院| 被警察猛c猛男男男 | 中文字幕第一页在线 | 免费网站在线观看人数在哪动漫 | 久久久久网 | www日本黄色| av香蕉网| 玖玖在线观看 | 妖精视频污 | 18国产免费视频 | 精品三级电影 | www.自拍| 亚洲国产成人精品激情在线 | av网址免费在线观看 | 中文在线√天堂 | 国产手机看片 | 狼性av懂色av禁果av | 一区二区免费在线观看 | 日本大尺度电影免费观看全集中文版 | 动漫女被黄漫免费视频 | 日本精品一区视频 | 婷婷丁香视频 | 韩国短剧在线观看 | 久久久久国产精 | 亚洲激情五月婷婷 | xxxwww18| 亚洲三级免费 | 午夜网 | 国产精品亚洲二区在线观看 | 国产精品免费视频一区二区三区 | 国产日韩一区二区三区在线观看 | 色婷婷av国产精品 | 91成人短视频在线观看 | 精品免费在线观看 | 国产欧美日韩综合精品 | 欧美激情一区二区在线 | 91视频入口| 奇米影视四色777 | 日本xxxx人 | 成人网视频 | 国产crm系统91在线 | 在线观看日韩视频 | 国产成人三级一区二区在线观看一 | 欧洲做受高潮欧美裸体艺术 | 欧美精品久久久久a | 色站在线 | 亚洲一区 在线播放 | 欧美一级淫片aaaaaa | 欧美丰满老熟妇xxxxx性 | 中文字幕日韩国产 | 免费看黄色大片 | 色噜噜狠狠成人中文 | 国产ts在线| 在线观看免费中文字幕 | 欧美xxxxbbb | 美色视频 | 亚洲人成在线播放 | 亚洲一区视频网站 | 蜜桃tv在线观看 | 日本精品中文字幕 | 综合成人| 伊人久久亚洲 | 狠狠躁夜夜躁av无码中文幕 | 国产精品不卡一区 | 国产成人久久77777精品 | 日本一级黄色大片 | www.国产黄色| 一卡二卡三卡在线视频 | 丁香花在线影院观看在线播放 | 国产精品午夜电影 | 蜜桃成熟时李丽珍在线观看 | 真实偷拍激情啪啪对白 | 写真福利片hd在线播放 | av一区二区三区四区 | 黄色录像片子 | 神马影院午夜伦理 | 欧美一二 | 三级不卡| 成人免费区一区二区三区 | 狠狠干狠狠搞 | 久久久88| 一区二区三区不卡视频在线观看 | 不卡久久 | www夜片内射视频日韩精品成人 | 精品久久一区二区 | av色播 | 亚洲第一综合色 | 日韩激情小视频 |