Spring MVC文件上传配置、Spring MVC自定义HttpMessageConverter、Spring MVC服务器端推送技术、Spring MVC的测试

一、Spring MVC文件上传配置

Spring MVC通过配置一个MultipartResolver来上传文件。

Spring的控制器中,通过MultipartFile file来接收文件,通过MultipartFile[] files接收多个文件上传。

Spring MVC文件上传配置、Spring MVC自定义HttpMessageConverter、Spring MVC服务器端推送技术、Spring MVC的测试_第1张图片

二、Spring MVC自定义HttpMessageConverter

HttpMessageConverter是用来处理request和response里的数据的。Spring为我们内置了大量的HttpMessageConverter,例如,MappingJackon2HttpMessageConverter、StringHttpMessageConverter。

Spring MVC文件上传配置、Spring MVC自定义HttpMessageConverter、Spring MVC服务器端推送技术、Spring MVC的测试_第2张图片

运行效果:

Spring MVC文件上传配置、Spring MVC自定义HttpMessageConverter、Spring MVC服务器端推送技术、Spring MVC的测试_第3张图片

点击请求后:

Spring MVC文件上传配置、Spring MVC自定义HttpMessageConverter、Spring MVC服务器端推送技术、Spring MVC的测试_第4张图片

三、Spring MVC服务器端推送技术

服务端推送技术在日常开发中很常用,早期很多人的解决方案是使用Ajax向服务器轮询消息,使浏览器尽可能第一时间获得服务端的消息,但是因为这种方式的轮询频率不好控制,导致服务端的压力大大增加。

接下来向大家介绍的服务器端推送方案是:当客户端向服务端发送请求,服务端会抓住这个请求不放,等有数据更新的时候才返回给客户端,当客户端接收到消息后,再向服务端发送请求,周而复始。这种方式的好处是减少了服务器的请求数量,大大减少了服务器的压力。

下面介绍两种实现方法:基于SSE(Server Send Event服务端发送事件)的服务器端推送和基于Servlet3.0+的异步方法特性。第一种方式需要新式浏览器的支持,第二种方式是跨浏览器的。

1.SSE:

Spring MVC文件上传配置、Spring MVC自定义HttpMessageConverter、Spring MVC服务器端推送技术、Spring MVC的测试_第5张图片

2.Servlet3.0+异步方法处理:

Spring MVC文件上传配置、Spring MVC自定义HttpMessageConverter、Spring MVC服务器端推送技术、Spring MVC的测试_第6张图片

结果1:

Spring MVC文件上传配置、Spring MVC自定义HttpMessageConverter、Spring MVC服务器端推送技术、Spring MVC的测试_第7张图片

结果2:

Spring MVC文件上传配置、Spring MVC自定义HttpMessageConverter、Spring MVC服务器端推送技术、Spring MVC的测试_第8张图片

四、Spring MVC的测试

为了测试Web项目通常不需要启动项目,我们需要一些Servlet相关的模拟对象,比如:MockMVC、MockHttpServletRequest、MockHttpServletResponse、MockHttpSession等。

引入一个概念测试驱动开发(Test Driven Development,TDD),开发人员按照需求先写一个自己预期结果的测试用例,这个测试用例刚开始肯定是失败的测试,随着不断的编码和重构,最终让测试用例通过测试,这样才能保证软件的质量和可控性。

Spring MVC文件上传配置、Spring MVC自定义HttpMessageConverter、Spring MVC服务器端推送技术、Spring MVC的测试_第9张图片

JUnit测试结果:

Spring MVC文件上传配置、Spring MVC自定义HttpMessageConverter、Spring MVC服务器端推送技术、Spring MVC的测试_第10张图片

你可能感兴趣的:(Spring MVC文件上传配置、Spring MVC自定义HttpMessageConverter、Spring MVC服务器端推送技术、Spring MVC的测试)