- 作者简介
- 内容提要
- 关于本书
- 路线图
- 代码规范与下载
- 作者在线
- 封面插图简介
- 前言
- 译者序
- 致谢
- 第1部分 Spring 的核心
- 第1章 Spring 之旅
- 第2章 装配 Bean
- 第3章 高级装配
- 第4章 面向切面的 Spring
- 第2部分 Web 中的 Spring
- 第5章 构建 Spring Web 应用程序
- 第6章 渲染 Web 视图
- 第7章 Spring MVC 的高级技术
- 第8章 使用 Spring Web Flow
- 第9章 保护 Web 应用
- 第3部分 后端中的 Spring
- 第10章 通过 Spring 和 JDBC 征服数据库
- 第11章 使用对象-关系映射持久化数据
- 第12章 使用 NoSQL 数据库
- 第13章 缓存数据
- 第14章 保护方法应用
- 第4部分 Spring 集成
- 第15章 使用远程服务
- 第16章 使用 Spring MVC 创建 REST API
- 第17章 Spring消息
- 第18章 使用 WebSocket 和 STOMP 实现消息功能
- 第19章 使用 Spring 发送 Email
- 第20章 使用 JMX 管理 Spring Bean
- 第21章 借助 Spring Boot 简化 Spring 开发
1.4.2 Spring 3.2 新特性
Spring 3.1在很大程度上聚焦于配置改善以及其他的一些增强,包括Spring MVC的增强,而Spring 3.2是主要关注Spring MVC的一个发布版本。Spring MVC 3.2带来了如下的功能提升:
Spring 3.2的控制器(Controller)可以使用Servlet 3.0的异步请求,允许在一个独立的线程中处理请求,从而将Servlet线程解放出来处理更多的请求;
尽管从Spring 2.5开始,Spring MVC控制器就能以POJO的形式进行很便利地测试,但是Spring 3.2引入了Spring MVC测试框架,用于为控制器编写更为丰富的测试,断言它们作为控制器的行为行为是否正确,而且在使用的过程中并不需要Servlet容器;
除了提升控制器的测试功能,Spring 3.2还包含了基于RestTemplate的客户端的测试支持,在测试的过程中,不需要往真正的REST端点上发送请求;
@ControllerAdvice注解能够将通用的@ExceptionHandler、@ InitBinder和@ModelAttributes方法收集到一个类中,并应用到所有控制器上;
在Spring 3.2之前,只能通过ContentNegotiatingViewResolver使用完整的内容协商(full content negotiation)功能。但是在Spring 3.2中,完整的内容协商功能可以在整个Spring MVC中使用,即便是依赖于消息转换器(message converter)使用和产生内容的控制器方法也能使用该功能;
Spring MVC 3.2包含了一个新的@MatrixVariable注解,这个注解能够将请求中的矩阵变量(matrix variable)绑定到处理器的方法参数中;
基础的抽象类AbstractDispatcherServletInitializer能够非常便利地配置DispatcherServlet,而不必再使用web.xml。与之类似,当你希望通过基于Java的方式来配置Spring的时候,可以使用Abstract- Annotat ionConfigDispatcherServletInitializer的子类;
新增了ResponseEntityExceptionHandler,可以用来替代Default- HandlerException Resolver。ResponseEntityExceptionHandler方法会返回ResponseEntity<Object>,而不是ModelAndView;
RestTemplate和@RequestBody的参数可以支持范型;
RestTemplate和@RequestMapping可以支持HTTP PATCH方法;
在拦截器匹配时,支持使用URL模式将其排除在拦截器的处理功能之外。
虽然Spring MVC是Spring 3.2改善的核心内容,但是它依然还增加了多项非MVC的功能改善。下面列出了Spring 3.2中几项最为有意思的新特性:
@Autowired、@Value和@Bean注解能够作为元注解,用于创建自定义的注入和bean声明注解;
@DateTimeFormat注解不再强依赖JodaTime。如果提供了JodaTime,就会使用它,否则的话,会使用SimpleDateFormat;
Spring的声明式缓存提供了对JCache 0.5的支持;
支持定义全局的格式来解析和渲染日期与时间;
在集成测试中,能够配置和加载WebApplicationContext;
在集成测试中,能够针对request和session作用域的bean进行测试。
在本书的多个章节中,都能看到Spring 3.2的特性,尤其是在Web和REST相关的章节中。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论