spring boot搭建web項(xiàng)目 SpringBoot項(xiàng)目中如何定制HTTP消息轉(zhuǎn)換器?
SpringBoot項(xiàng)目中如何定制HTTP消息轉(zhuǎn)換器?如果想自定義自己的HTTP消息轉(zhuǎn)換器,首先要知道SpringBoot默認(rèn)是如何進(jìn)行HTTP消息轉(zhuǎn)換的。讓 讓我們看看如何在日常工作中開(kāi)發(fā)一個(gè)簡(jiǎn)單的
SpringBoot項(xiàng)目中如何定制HTTP消息轉(zhuǎn)換器?
如果想自定義自己的HTTP消息轉(zhuǎn)換器,首先要知道SpringBoot默認(rèn)是如何進(jìn)行HTTP消息轉(zhuǎn)換的。
讓 讓我們看看如何在日常工作中開(kāi)發(fā)一個(gè)簡(jiǎn)單的get請(qǐng)求:
那么當(dāng)前端請(qǐng)求我們的API時(shí),我們?nèi)绾螌⒕W(wǎng)絡(luò)傳輸?shù)淖止?jié)流序列化成我們想要的對(duì)象呢?業(yè)務(wù)處理后如何返回?cái)?shù)據(jù)?
在SpringBoot的框架下,HttpMessageConverter可以使用注解@RequestBody和@ResponseBody分別完成請(qǐng)求消息到對(duì)象和對(duì)象到響應(yīng)消息的轉(zhuǎn)換。底層靈活的消息轉(zhuǎn)換機(jī)制是Spring 3中新引入的HttpMessageConverter機(jī)制。X..
打開(kāi)任何集成了Spring-web函數(shù)的SpringBoot項(xiàng)目,都可以找到這個(gè)HttpMessageConvert:
可以看出他是一個(gè)接口類(lèi),和他一個(gè)包下有很多實(shí)現(xiàn)類(lèi)。有興趣的同學(xué)可以調(diào)試一下,進(jìn)去了解一下這段源代碼,在這個(gè)過(guò)程中你也可以學(xué)到很多關(guān)于序列化的知識(shí)。
源代碼分析:如何知道SpringBoot中默認(rèn)的convert?
項(xiàng)目的啟動(dòng)類(lèi)上有一個(gè)annotation @ spring boot application。如果您單擊它,您將看到它包含一系列注釋?zhuān)╝nnotation @ enable auto configuration。繼續(xù)點(diǎn)擊它看:。
我發(fā)現(xiàn)我引入了一個(gè)類(lèi):auto configuration import selector類(lèi),有一個(gè)方法可以選擇Imports():
繼續(xù)點(diǎn)擊進(jìn)入loadMetadata的方法:
至此,相信大家都知道他是怎么裝的了:
繼續(xù)下去,你會(huì)知道如何加載消息的默認(rèn)轉(zhuǎn)換。我贏了。;我不能在這里告訴你答案。希望你能自己進(jìn)去看看,收獲不一樣~
自定義自己的convert了解了消息轉(zhuǎn)換器的原理以及如何在SpringBoot中加載,我們就知道如何自定義自己的消息轉(zhuǎn)換器了。首先,我們將實(shí)現(xiàn)自己的convert并繼承AbstractHttpMessageConverter:
然后定義一個(gè)WebConfig類(lèi)來(lái)繼承WebMvcConfigurer,并添加我們的自定義convert:
在實(shí)際工作中,很多情況下可能不需要自己實(shí)現(xiàn)convert,但是可以使用默認(rèn)的消息轉(zhuǎn)換器。除非你有自己的特殊需求要考慮,否則不建議自己實(shí)現(xiàn)conv
springboot 項(xiàng)目會(huì)用到spring嗎?
是的,跳羚是春天的一部分。;的Web開(kāi)發(fā)。只要你用了@Controller或者@RestController,你就是在用Spring。springboot是Spring架構(gòu)的升級(jí),主體還是Spring。