• 4.3 Web的改进

  • 对现有的对资源处理类ResourceHttpRequestHandlerResourceResolver进行了扩展,抽象出了ResourceTransformer和ResourceUrlProvider类。许多内置的实现都对版本化的资源URL(用于HTTP缓存),查找gzip压缩的资源,生成HTML 5 缓存清单等等提供了支持。见第22.16.9节“资源的服务”。

  • 现在@RequestParam,@RequestHeader和@MatrixVariable注解已经支持JDK 1.8的java.util.Optional。

  • 使用ListenableFuture作为底层服务(或者调用AsyncRestTemplate)调用的返回值,取代了原来的DeferredResult。

  • @ModelAttribute注解的方法现在按可以照依赖间的顺序依次被调用,参考SPR-6299。

  • Jackson的@JsonView直接作用于@ResponseBody和ResponseEntity注解控制器方法,用于控制同一POJO的不同数量的、不同属性的序列化细节(例如:只序列化摘要与详情页面)。 也支持基于视图的渲染,通过将序列化视图类型名称作为Model的特殊键。 有关详细信息,请参阅“Jackson序列化视图的支持”一节。

  • Jackson现在支持JSONP。参考Jackson JSONP支持。

  • 提供三个HttpMessageConverter可供选择:

1.Gson——比Jackson更轻量级,已应用于Spring Android项目中。

2.Google协议缓冲——企业内部应用的高效服务间数据传输协议,也可以以JSON和XML格式暴露于浏览器中。

3.通过jackson-dataformat-xml,支持基于XML的Jackson。当使用@EnableWebMvc或<mvc:annotation-driven>时,如果classpath下存在jackson-dataformat-xml,则默认会用jackson-dataformat-xml替代JAXB2。

  • 视图(例如:jsp)现在可以通过引用控制器映射的名称与控制器建立链接。默认的名称将被赋给每一个@RequestMapping。例如,FooController拥有方法handleFoo,它的默认映射名称为“FC#handleFoo”。命名策略是可插拔的,也可以通过name属性为@RequestMapping明确地命名。在Spring JSP标签库中新的mvcUrl功能可以让使用JSP页面变得更方便。参考21.7.2 从视图为Controller及其方法创建URI

  • ResponseEntity提供了创建者风格的API用于引导控制器方法为服务端响应做准备。例如,ResponseEntity.ok()。

  • RequestEntity是一种新类型,它提供了创建者风格的API用于引导客户端REST代码为HTTP请求做准备。

  • MVC Java配置与XML命名空间:

  • 视图解析器可以被配置,包含对内容协商的支持。参考22.16.8 视图解析器

  • 视图控制器内置了对重定向及设置响应状态的支持。应用程序可以使用它配置重定向的URL,用视图渲染 404 响应页面,发送“无内容”响应,等等。
  • 内置了自定义的路径匹配。参考22.16.11路径匹配

  • 支持Groovy标记模板(基于Groovy 2.3)。参考GroovyMarkupConfigurer和各自的ViewResolver及视图实现 。

results matching ""

    No results matching ""