SpringBoot項目中如何定制HTTP消息轉換器?
如果想自定義自己的HTTP消息轉換器,首先要知道SpringBoot默認是如何進行HTTP消息轉換的。
讓讓我們看看如何在日常工作中開發一個簡單的get請求:
那么當前端請求我們的API時,我們如何將網絡傳輸的字節流序列化成我們想要的對象呢?業務處理后如何返回數據?
在SpringBoot的框架下,HttpMessageConverter可以使用注解@RequestBody和@ResponseBody分別完成請求消息到對象和對象到響應消息的轉換。底層靈活的消息轉換機制是Spring3中新引入的HttpMessageConverter機制。X..
打開任何集成了Spring-web函數的SpringBoot項目,都可以找到這個HttpMessageConvert:
可以看出他是一個接口類,和他一個包下有很多實現類。有興趣的同學可以調試一下,進去了解一下這段源代碼,在這個過程中你也可以學到很多關于序列化的知識。
源代碼分析:如何知道SpringBoot中默認的convert?
項目的啟動類上有一個annotation@springbootapplication。如果您單擊它,您將看到它包含一系列注釋,包括annotation@enableautoconfiguration。繼續點擊它看:。
我發現我引入了一個類:autoconfigurationimportselector類,有一個方法可以選擇imports():
繼續點擊進入loadmetadata的方法:
至此,相信大家都知道他是怎么裝的了:
繼續下去,你會知道如何加載消息的默認轉換。我贏了。;我不能在這里告訴你答案。希望你能自己進去看看,收獲不一樣~
自定義自己的convert了解了消息轉換器的原理以及如何在SpringBoot中加載,我們就知道如何自定義自己的消息轉換器了。首先,我們將實現自己的convert并繼承AbstractHttpMessageConverter:
然后定義一個WebConfig類來繼承WebMvcConfigurer,并添加我們的自定義convert:
在實際工作中,很多情況下可能不需要自己實現convert,但是可以使用默認的消息轉換器。除非你有自己的特殊需求要考慮,否則不建議自己實現conv
springboot項目會用到spring嗎?
是的,跳羚是春天的一部分。;的Web開發。只要你用了@Controller或者@RestController,你就是在用Spring。springboot是Spring架構的升級,主體還是Spring。