3.1
添加了引入环境profile功能
添加了@enable注解,使用特定功能
添加了对声明式缓存的支持,能够使用简单的注解声明缓存边界和规则
添加的用于构造器注入的c命名空间,类似与Spring2的p命名空间,用于对应属性注入
开始支持Servlet3.0,包括基于java配置中生命Servlet和Filter,不再只仅仅借助web.xml
改善对于JPA的支持,让JPA能在Spring中完整配置JPA,不必再使用persistence.xml文件
springmvc
自动绑定路径变量到模型属性中
提供了@RequestMappingProduces和consumes属性,用于匹配请求中的Accept和Content-Type头部信息
提供了@RequestPart注解,用于将Multipart请求中的而某些部分绑定到处理器的方法参数中
支持Flash属性,在redirect请求后依然能够存活的属性,flash属性的RedirectAttribute类型
3.2
可以使用Servlet3.0的异步请求,允许一个独立的线程中处理请求
Spring3的Controller单例但是多线程
引入了SpringMVC测试框架,用于为控制器编写更丰富测试,断言他们作为控制器行为是否正确,而且在使用过程不需要Servlet容器
@ControllerAdvice注解能将通用的@ExceptionHandler、@InitBinder和@ModelAttributes方法收集到一个类中,并应用到所有的控制器上
包含了一个新的@MatrixVariable注解,这个注解能够将请求中的矩阵变量(matrix variable)绑定到处理器的方法参数中
基础的抽象类AbstractDispatcherServletInitializer能够非常便利地配置DispatcherServlet,而不必再使用web.xml。与之类似,当你希望通过基于Java的方式来配置Spring的时候,可以使用Abstract-AnnotationConfigDispatcherServletInitializer的子类
新增了ResponseEntityExceptionHandler,可来替代Default-HandlerExceptionResolver,
ResponseEntityExceptionHandler方法会返回ResponseEntity,而不是ModelAndView
RestTemplate和@RequestBody的参数可支持泛型
RestTemplate和@RequestMapping可支持Http的PATCH方法
@Autowired、@Value和@Bean注解能够作为元注解,用于创建自定义的注入和bean声明注解
@DateTimeFormat注解不再强依赖JodaTime
Spring的声明式缓存提供了JCache0.5的支持
支持定义全局的格式来解析和渲染日期与时间
常用全局格式化时间方法:
Spring3配置全局时间格式化:
集成测试中能够配合和加载WebApplicationContext
在集成测试中你能够针对requesthesession作用于的bean进行测试
4.0
提供了对WebSocket编程的支持
添加了新的消息模块,SpringIntegration项目
第一批支持java8特性的框架(支持lambda表达式)
支持JSR-310,Date与TimeAPI,提供比java.util.Date,java.util.Calendar更丰富便捷的时间API
为Groovy开发的应用程序提供了更加顺便的编程体验,尤其是支持非常便利的完全采用Groovy开发的Spring应用程序
添加了条件化创建Bean的功能
Spring4包含了Spring RestTemplate的一个新的一步实现,他会立即返回并且允许在操作完成后执行回调
添加了对多想JEE规范的支持,包括JMS2.0、JTA1.2/JPA2.1和BeanValidation1.1
5.0
基准升级:要构建和运行 Spring5 应用程序,你至少需要 J2EE7 和 JDK8。以前的 JDK 和 JavaEE 版本不再支持。
兼容 JDK9 运行时
使用 JDK8 特性 比如 lambda 表达式、stream流
响应式编程支持,新增Spring WebFlu模块 与 Spring MVC 并列使用
提供了一个函数式Web框架。它提供了使用函数式编程风格来定义端点的特性。 该框架引入了两个基本组件:HandlerFunction 和 RouterFunction。
Kotlin支持
取消了对几个框架的支持。例如:
Portlet、Velocity、JasperReports、XMLBeans、JDO、Guava