閱讀414 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Spring5新功能

Spring框架的新功能

這一章主要提供Spring框架新的功能和變更

升級到新版本的框架可以參考.https://github.com/spring-projects/spring-framework/wiki/Migrating-from-earlier-versions-of-the-Spring-Framework。

內容列表

Spring 5.x框架新的功能

Spring 4.x框架新的功能

Spring 3.x框架新的功能

Spring FrameWork 5.0新的功能

JDK 8+和Java EE7+以上版本

  • 整個框架的代碼基於java8源代碼水平
  • 通過使用泛型等特性提高可讀性
  • 對java8提高直接的代碼支撐
  • 運行時兼容jdk9
  • Java EE 7API需要Spring相關的模塊支持
  • 運行時兼容Java EE8 API
  • 取消的包,類和方法
  • 包 beans.factory.access
  • 包 dbc.support.nativejdbc
  • 從spring-aspects 模塊移除了包mock.staicmock,不在提AnnotationDrivenStaticEntityMockingControl支持
  • 許多不建議使用的類和方法在代碼庫中刪除

核心特性

JDK8的增強:

  • 訪問Resuouce時提供getFile或和isFile防禦式抽象
  • 有效的方法參數訪問基於java 8反射增強
  • 在Spring核心接口中增加了聲明default方法的支持一貫使用JDK7 Charset和StandardCharsets的增強
  • 兼容JDK9
  • Spring 5.0框架自帶了通用的日誌封裝
  • 持續實例化via構造函數(修改了異常處理)
  • Spring 5.0框架自帶了通用的日誌封裝
  • spring-jcl替代了通用的日誌,仍然支持可重寫
  • 自動檢測log4j 2.x, SLF4J, JUL(java.util.Logging)而不是其他的支持
  • 訪問Resuouce時提供getFile或和isFile防禦式抽象
  • 基於NIO的readableChannel也提供了這個新特性

核心容器

  • 支持候選組件索引(也可以支持環境變量掃描)
  • 支持@Nullable注解
  • 函數式風格GenericApplicationContext/AnnotationConfigApplicationContext
  • 基本支持bean API注冊
  • 在接口層麵使用CGLIB動態代理的時候,提供事物,緩存,異步注解檢測
  • XML配置作用域流式
  • Spring WebMVC
  • 全部的Servlet 3.1 簽名支持在Spring-provied Filter實現
  • 在Spring MVC Controller方法裏支持Servlet4.0 PushBuilder參數
  • 多個不可變對象的數據綁定(Kotlin/Lombok/@ConstructorPorties)
  • 支持jackson2.9
  • 支持JSON綁定API
  • 支持protobuf3
  • 支持Reactor3.1 Flux和Mono

SpringWebFlux

  • 新的spring-webflux模塊,一個基於reactive的spring-webmvc,完全的異步非阻塞,旨在使用enent-loop執行模型和傳統的線程池模型。
  • Reactive說明在spring-core比如編碼和解碼
  • spring-core相關的基礎設施,比如Encode 和Decoder可以用來編碼和解碼數據流;DataBuffer 可以使用java ByteBuffer或者Netty ByteBuf;ReactiveAdapterRegistry可以對相關的庫提供傳輸層支持。
  • 在spring-web包裏包含HttpMessageReade和HttpMessageWrite

測試方麵的改進

  • 完成了對JUnit 5’s Juptier編程和拓展模塊在Spring TestContext框架
  • SpringExtension:是JUnit多個可拓展API的一個實現,提供了對現存Spring TestContext Framework的支持,使用@ExtendWith(SpringExtension.class)注解引用。
  • @SpringJunitConfig:一個複合注解
  • @ExtendWith(SpringExtension.class) 來源於Junit Jupit
  • @ContextConfiguration 來源於Srping TestContext框架
  • @DisabledIf 如果提供的該屬性值為true的表達或占位符,信號:注解的測試類或測試方法被禁用
  • 在Spring TestContext框架中支持並行測試
  • 具體細節查看Test 章節 通過SpringRunner在Sring TestContext框架中支持TestNG, Junit5,新的執行之前和之後測試回調。
  • 在testexecutionlistener API和testcontextmanager新beforetestexecution()和aftertestexecution()回調。MockHttpServletRequest新增了getContentAsByteArray()和getContentAsString()方法來訪問請求體
  • 如果字符編碼被設置為mock請求,在print()和log()方法中可以打印Spring MVC Test的redirectedUrl()和forwardedUrl()方法支持帶變量表達式URL模板。
  • XMLUnit 升級到了2.3版本。

轉載自 並發編程網 - ifeve.com 

最後更新:2017-05-18 10:32:51

  上一篇:go  判斷棧的增長方向
  下一篇:go  ReentrantLock和內部鎖的性能對比(update)