色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

SpringBoot項目中如何定制HTTP消息轉換器

榮姿康2年前13瀏覽0評論

SpringBoot項目中如何定制HTTP消息轉換器?

要想自己定制HTTP消息轉換器必須先知道SpringBoot默認是怎么做HTTP消息轉換的。

先來看我們平常工作中開發一個簡單的get請求:

那么當前端請求我們的API的時候,我們是如何將網絡傳輸的字節流序列化成我們想要的對象呢?做完業務處理后又是如何返回數據呢?

HttpMessageConverter

在SpringBoot框架下,可以使用@RequestBody和@ResponseBody兩個注解,分別完成請求報文到對象和對象到響應報文的轉換,底層這種靈活的消息轉換機制,就是Spring3.x中新引入的HttpMessageConverter即消息轉換器機制。

打開任何一個集成了Spring-web功能的SpringBoot項目,都可以找到這個HttpMessageConvert:

可以看到他是一個接口類,和他在一個包下面有很多實現類,感興趣的同學可以debug跟進去把這塊源碼搞透,這個過程中大家還可以學習到很多關于序列化的知識。

源碼解析:怎么知道SpringBoot中的默認convert

在項目的啟動類Application.class上有一個@SpringBootApplication注解,點進去會看到他是一系列注解的包含,其中有一個@EnableAutoConfiguration注解,繼續點進去查看:

發現引入了一個類:AutoConfigurationImportSelector類,繼續跟進去有一個方法selectImports():

繼續點擊進入loadMetadata這個方法:

到這一步相信大家就清晰了他是怎么加載的了:

繼續走下去就知道如何加載消息的默認convert,這里就不和大家說答案,希望大家自己可以跟進去看看,收獲是不一樣的~

定制自己的convert

知道了消息轉換器的原理以及SpringBoot中如何加載的,我們就知道如何去定制自己的消息轉換器了,先實現自己的一個convert,繼承AbstractHttpMessageConverter:

然后定義一個WebConfig類繼承WebMvcConfigurer,把我們自定義的這個convert加進去:

實際工作中,大家可能很多時候并不需要自己去實現convert,用默認的消息轉換器就可以了,除非大家有自己特殊的需求考慮,否則不建議非得自己去實現這個convert。

以上就是關于SpringBoot中如何定制消息轉換器的回答了,不足之處歡迎大家評論交流,共同學習。

我是【java架構設計】,如果我的回答對您有幫助,歡迎轉發點贊,我將持續為您提供Java領域優質內容!

java報文例子,SpringBoot項目中如何定制HTTP消息轉換器