Spring 5.0 GA版本發布,支持JDK9及反應式編程">Spring 5.0 GA版本發布,支持JDK9及反應式編程

分類:IT技術 時間:2017-10-01

Spring Framework 5.0耗時兩年,終於在9月28日通過Spring 官方博客 撰文宣告發布第一個GA版本。期間經歷1年多的裏程碑版本和數個RC版本,現在 5.0.0.RELEASE已正式發布到了repo.spring.io和Maven中央倉庫,開發者可以通過Maven或Gradle快速獲取和體驗: 

Maven:

<dependencies>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.0.0.RELEASE</version>
  </dependency>
</dependencies>

Gradle:

dependencies {
  compile 'org.springframework:spring-context:5.0.0.RELEASE'
}

快速了解5.0

  • Spring Framework 5.0新特性
  • 遷移到Spring Framework 5.0
  • Spring Framework 5  官方FAQ
  • 最新的參考文檔
  • Pieter關於Spring Framework 5.0中反應式編程的全面介紹 文章

新特性簡介

  • 要求JDK 8+和Java EE 7+ 
    整個框架的代碼庫基於Java 8源碼級別,通過泛型推斷和lambda等提升了可讀性。全面兼容JDK9,同時支持類路徑classpath和模塊路徑module path;整個框架在JDK 9上編譯和執行測試用例,默認依然使用JDK 8。支持JavaEE 7 API,包括Servlet 3.1、Bean Validation 1.1、JPA 2.1和JMS 2.0,以及最新的容器和服務器Tomcat 8.5+、 Jetty 9.4+、 WildFly 10+等。在運行時兼容Java EE 8 API,包括Servlet 4.0、 Bean Validation 2.0、 JPA 2.2和JSON Binding API 1.0,並在Tomcat 9.0、 Hibernate Validator 6.0和Apache Johnzon 1.1測試通過。
  • 移除了的包、類和方法 
    移除了包beans.factory.access、jdbc.support.nativejdbc、spring-aspects模塊中的mock.staticmock、web.view.tiles2以及orm.hibernate3/hibernate4。不再支持Portlet、Velocity、JasperReports、XMLBeans、JDO和 Guava。
  • 常規核心修訂 
    包括針對JDK 8+的增強和對JDK 9的兼容,包級別的非空API聲明。5.0現在有了自己的Commons Logging橋接,會自動探測 Log4j 2.x、SLF4J及JUL (java.util.logging),不再需要外部的橋接程序。spring-core自帶ASM6.0(同時還包括CGLIB 3.2.5和Objenesis 2.6)。
  • 核心容器 
    支持 @Nullable註解作為可選註入點聲明;函數式GenericApplicationContext/AnnotationConfigApplicationContext;接口方法上的事務、緩存和異步註解一致性探測。
  • Spring Web MVC 
    通過Spring自帶的Filter實現全面支持Servlet 3.1;controller方法中支持Servlet 4.0的PushBuilder參數;針對Servlet 3.0 multipart解析時增加 MaxUploadSizeExceededException類型異常;不可變對象的數據綁定支持(Kotlin / Lombok / @ConstructorProperties);支持JSON綁定API(Jackson 和GSON的替代方案),支持Jackson 2.9和Protubuf 3;支持Reactor 3.1;Flux、Mono以及RxJava 3.1和2.1都可以作為controller方法的返回值,以便適應新的反應式WebClient或者Spring Data Reactive repositories;新的ParsingPathMatcher替代AntPathMatcher,解析效率更高;@ExceptionHandler方法支持 RedirectAttributes參數。
  • Spring WebFlux 
    這是一個全新的模塊,作為spring-webmvc的替代方案,基於反應式基礎構建——全面異步和非阻塞,它的目的是將其用於事件循環執行模型中,用來替代傳統的每個請求對應一個線程的大規模線程池模型;spring-core和spring-web中的反應式支持,比如各種編解碼器等;@Controller風格的基於註解的編程模塊,與Spring MVC類似,只不過在WebFlux中運行,支持反應式技術棧;新的函數式編程模型(“WebFlux.fn”)也可以替代@Controller,在路由API方面更加輕量和透明,運行在同樣的反應式棧和WebFlux基礎設施上;新的WebClient,用於函數式和反應式的HTTP API調用。
  • Kotlin支持 
    在使用Kotlin 1.1.50以上版本時,支持Null安全的API;使用Kotlin DSL的函數式bean定義。
  • 測試提升 
    完整支持JUnit 5的Jupitre編程和Spring TestContext Framework的擴展模型;支持並行測試執行;新的before和after測試執行回調,包括TestNG,JUnit 5和使用SpringRunner的JUnit 4(但不支持JUnit 4 規則);MockHttpServletRequest現在增加了 getContentAsByteArray()和getContentAsString()方法來訪問內容;Spring MVC Test中的print()和log()方法能夠打印Mock請求中的消息體,redirectedUrl()和forwardedUrl()方法能夠通過變量擴展支持URI模板;對XMLUnit的支持升級到了2.3版本。

參考鏈接

官方博客: https://spring.io/blog/2017/09/28/spring-framework-5-0-goes-ga

項目主頁: http://projects.spring.io/spring-framework/

源碼獲取: https://github.com/spring-projects/spring-framework/

感謝張衛濱對本文的審校。


Tags: Spring Framework 版本 反應式 5.0 gt

文章來源:


ads
ads

相關文章
ads

相關文章

ad