SpringBoot可以很方便地響應(yīng)數(shù)據(jù)。
內(nèi)容協(xié)商:
根據(jù)客戶(hù)端接收能力的不同,返回不同類(lèi)型的媒體數(shù)據(jù)。
1.響應(yīng)Json數(shù)據(jù)
在方法上加上@ResponseBody,便可以給前端返回json數(shù)據(jù)。如下:


2.響應(yīng)XML數(shù)據(jù)
1.首先要引入xml依賴(lài):

這時(shí)我們發(fā)現(xiàn)上一節(jié)返回的person變成了xml格式,這是因?yàn)榫W(wǎng)頁(yè)可接受類(lèi)型xml要優(yōu)先于json,因此當(dāng)我們引入xml依賴(lài),數(shù)據(jù)就響應(yīng)為xml格式。這就是內(nèi)容協(xié)商。

3.通過(guò)開(kāi)啟瀏覽器參數(shù)方式來(lái)自己決定響應(yīng)什么格式的數(shù)據(jù)
瀏覽器請(qǐng)求頭無(wú)法修改,那么我們?cè)趺醋约簺Q定想響應(yīng)什么樣的數(shù)據(jù)?
1.首先在核心配置文件application.yaml中開(kāi)啟基于請(qǐng)求參數(shù)的內(nèi)容協(xié)商功能,如下:

2.在請(qǐng)求時(shí)帶上參數(shù)format,則可要求后端返回想要的數(shù)據(jù),比如我現(xiàn)在想要json數(shù)據(jù):

可見(jiàn)此時(shí)響應(yīng)的就是json數(shù)據(jù)
4.編寫(xiě)一個(gè)自定義的converter,可以響應(yīng)自定義的數(shù)據(jù)格式
比如我想向?yàn)g覽器響應(yīng)我自定義的數(shù)據(jù)格式:
1.自己寫(xiě)一個(gè)converter,實(shí)現(xiàn)HttpMessageConverter接口:

可以看到這個(gè)converter只支持Person類(lèi)型

2.在getSupportedMediaTypes方法中聲明此converter支持的文件格式。

3.在webconfig中將剛才寫(xiě)的類(lèi)GuiMessageConverter引入

5.自定義內(nèi)容協(xié)商策略
