Spring 5.0 GA版本釋出,支援JDK9及反應式程式設計
Spring Framework 5.0耗時兩年,終於在9月28日通過Spring官方部落格撰文宣告發布第一個GA版本。期間經歷1年多的里程碑版本和數個RC版本,現在 5.0.0.RELEASE已正式釋出到了repo.spring.io和Maven中央倉庫,開發者可以通過Maven或Gradle快速獲取和體驗:
\\Maven:
\\\\u0026lt;dependencies\u0026gt;\ \u0026lt;dependency\u0026gt;\ \u0026lt;groupId\u0026gt;org.springframework\u0026lt;/groupId\u0026gt;\ \u0026lt;artifactId\u0026gt;spring-context\u0026lt;/artifactId\u0026gt;\ \u0026lt;version\u0026gt;5.0.0.RELEASE\u0026lt;/version\u0026gt;\ \u0026lt;/dependency\u0026gt;\\u0026lt;/dependencies\u0026gt;\
\\Gradle:
\\\dependencies {\ compile 'org.springframework:spring-context:5.0.0.RELEASE'\}\
\\快速瞭解5.0
\\- Spring Framework 5.0新特性\\t
- 遷移到Spring Framework 5.0\\t
- Spring Framework 5 官方FAQ\\t
- 最新的參考文件\\t
- Pieter關於Spring Framework 5.0中反應式程式設計的全面介紹文章\
新特性簡介
\\- 要求JDK 8+和Java EE 7+
\\t整個框架的程式碼庫基於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測試通過。\\t - 移除了的包、類和方法
\\t移除了包beans.factory.access、jdbc.support.nativejdbc、spring-aspects模組中的mock.staticmock、web.view.tiles2以及orm.hibernate3/hibernate4。不再支援Portlet、Velocity、JasperReports、XMLBeans、JDO和 Guava。\\t - 常規核心修訂
\\t包括針對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)。\\t - 核心容器
\\t支援 @Nullable註解作為可選注入點宣告;函式式GenericApplicationContext/AnnotationConfigApplicationContext;介面方法上的事務、快取和非同步註解一致性探測。\\t - Spring Web MVC
\\t通過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引數。\\t - Spring WebFlux
\\t這是一個全新的模組,作為spring-webmvc的替代方案,基於反應式基礎構建——全面非同步和非阻塞,它的目的是將其用於事件迴圈執行模型中,用來替代傳統的每個請求對應一個執行緒的大規模執行緒池模型;spring-core和spring-web中的反應式支援,比如各種編解碼器等;@Controller風格的基於註解的程式設計模組,與Spring MVC類似,只不過在WebFlux中執行,支援反應式技術棧;新的函數語言程式設計模型(“WebFlux.fn”)也可以替代@Controller,在路由API方面更加輕量和透明,執行在同樣的反應式棧和WebFlux基礎設施上;新的WebClient,用於函式式和反應式的HTTP API呼叫。\\t - Kotlin支援
\\t在使用Kotlin 1.1.50以上版本時,支援Null安全的API;使用Kotlin DSL的函式式bean定義。\\t - 測試提升
\\t完整支援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/
感謝張衛濱對本文的審校。
相關文章
- 聊聊Spring Reactor反應式程式設計SpringReact程式設計
- Spring框架4.0 GA釋出Spring框架
- Micronaut框架3的GA 版本釋出!框架
- Spring Framework 3.2 GA版釋出SpringFramework
- Elm 0.14 釋出,函式式反應式程式語言函式
- .Net 中的反應式程式設計程式設計
- 什麼是反應式程式設計?程式設計
- EMQX v4.4.5 釋出:新增排他訂閱及 MQTT 5.0 釋出屬性支援MQQT
- 反應式程式設計讀書筆記程式設計筆記
- Spring框架4.0 GA釋出,最新版本框架開發包下載Spring框架
- spring AOP 程式設計式應用Spring程式設計
- Kubernetes 1.14 版本釋出:正式支援Windows 節點,持久化本地捲進入GAWindows持久化
- 反應式程式設計在微服務下的重生程式設計微服務
- MQTT X v1.8.1版本釋出:桌面端支援自動更新,MQTT X CLI支援MQTT 5.0MQQT
- 反應式程式設計是正確的方法嗎? - JAXenter程式設計
- Java 18和JDK 18可用於生產的GA版本釋出JavaJDK
- 完美解釋 Javascript 響應式程式設計原理JavaScript程式設計
- Redis 6.0.0 GA已釋出! -antirezRedis
- iView 釋出 3.1.0 版本,支援 TypeScript,支援 Vue CLI 3ViewTypeScriptVue
- Spring 5與Spring cloud的響應式程式設計之旅SpringCloud程式設計
- Apache Lucene 5.0釋出,不再相容3.X系列版本Apache
- Nacos 釋出 1.0.0 GA 版本,可大規模投入到生產環境
- Nim 0.10.2 釋出,指令式程式設計語言程式設計
- 魅族Flyme 5.0版本即將釋出:基於安卓5.0系統安卓
- 通俗解釋什麼是響應式程式設計?程式設計
- Excelize 釋出 2.6.1 版本,支援工作簿加密Excelize加密
- OpenStack JUNO版本釋出——支援Spark和NFVSpark
- 解構反應式程式設計——Java8,RxJava,Reactor之比較程式設計RxJavaReact
- .NET 5.0 RC1 釋出,離正式版釋出僅剩兩個版本
- Qt 5.3.1 版本應用程式的釋出問題QT
- SpringSide 4.0 GA版釋出SpringIDE
- Spring Cloud 2021.0.0 正式釋出,第一個支援Spring Boot 2.6的版本!CloudSpring Boot
- .NET 5.0釋出 - microsoftROS
- Tor Browser 5.0釋出
- KDE Plasma 5.0釋出ASM
- 程式設計面試題釋出程式設計面試題
- Node.JS程式設計師的反應Node.js程式設計師
- 使用反應式程式設計替換Java自動資源管理 - Arvind程式設計Java