一、Spring MVC文件上傳配置
Spring MVC通過配置一個(gè)MultipartResolver來上傳文件。
Spring的控制器中,通過MultipartFile file來接收文件,通過MultipartFile[] files接收多個(gè)文件上傳。

二、Spring MVC自定義HttpMessageConverter
HttpMessageConverter是用來處理request和response里的數(shù)據(jù)的。Spring為我們內(nèi)置了大量的HttpMessageConverter,例如,MappingJackon2HttpMessageConverter、StringHttpMessageConverter。

運(yùn)行效果:

點(diǎn)擊請(qǐng)求后:

三、Spring MVC服務(wù)器端推送技術(shù)
服務(wù)端推送技術(shù)在日常開發(fā)中很常用,早期很多人的解決方案是使用Ajax向服務(wù)器輪詢消息,使瀏覽器盡可能第一時(shí)間獲得服務(wù)端的消息,但是因?yàn)檫@種方式的輪詢頻率不好控制,導(dǎo)致服務(wù)端的壓力大大增加。
接下來向大家介紹的服務(wù)器端推送方案是:當(dāng)客戶端向服務(wù)端發(fā)送請(qǐng)求,服務(wù)端會(huì)抓住這個(gè)請(qǐng)求不放,等有數(shù)據(jù)更新的時(shí)候才返回給客戶端,當(dāng)客戶端接收到消息后,再向服務(wù)端發(fā)送請(qǐng)求,周而復(fù)始。這種方式的好處是減少了服務(wù)器的請(qǐng)求數(shù)量,大大減少了服務(wù)器的壓力。
下面介紹兩種實(shí)現(xiàn)方法:基于SSE(Server Send Event服務(wù)端發(fā)送事件)的服務(wù)器端推送和基于Servlet3.0+的異步方法特性。第一種方式需要新式瀏覽器的支持,第二種方式是跨瀏覽器的。
1.SSE:

2.Servlet3.0+異步方法處理:

結(jié)果1:

結(jié)果2:

四、Spring MVC的測(cè)試
為了測(cè)試Web項(xiàng)目通常不需要啟動(dòng)項(xiàng)目,我們需要一些Servlet相關(guān)的模擬對(duì)象,比如:MockMVC、MockHttpServletRequest、MockHttpServletResponse、MockHttpSession等。
引入一個(gè)概念測(cè)試驅(qū)動(dòng)開發(fā)(Test Driven Development,TDD),開發(fā)人員按照需求先寫一個(gè)自己預(yù)期結(jié)果的測(cè)試用例,這個(gè)測(cè)試用例剛開始肯定是失敗的測(cè)試,隨著不斷的編碼和重構(gòu),最終讓測(cè)試用例通過測(cè)試,這樣才能保證軟件的質(zhì)量和可控性。

JUnit測(cè)試結(jié)果:
