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的支持
支持定義全局的格式來解析和渲染日期與時間
常用全局格式化時間方法:https://www.cnblogs.com/zhanghongbo19870214/p/6555339.html
Spring3配置全局時間格式化:http://blog.csdn.net/chenleixing/article/details/45156617
集成測試中能夠配合和加載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