Spring 官宣發佈 Spring Boot 3.0 第一個里程碑 M1,從 Java 8 提升到 Java 17!

Spring官方於2022年1月20日發佈Spring Boot 3.0.0-M1版本,預示開啓了Spring Boot 3.0的里程碑,相信這是通往下一代Spring框架的激動人心的旅程。

1642773236(1).jpg

接下來一起來看看Spring Boot 3.0.0-M1 版本都有哪些重大變化。

Spring Boot 2.x 棄用Spring Boot 2.x中不推薦使用的類、方法和屬性已在Spring Boot 3.0.0-M1版本中刪除,注意在升級之前有沒有調用過時的方法。最低要求變更Java基線從Java 8提升到Java 17。Spring Boot 3.0需要Java 17和Spring Framework 6作爲最低版本。使用Gradle構建的應用程序需要Gradle 7.3或更高版本。目前已刪除對Jersey的支持,因爲它尚不支持Spring Framework 6。升級到Jakarta EE 9Spring Boot 3.0開始,如果使用Spring Boot 3.0的現有應用程序,需要注意Java EE API已遷移到其他等效的Jakarta EE上。對於大多數的開發人員來說,這將意味着需要將任何javax導入替換爲jakarta,例如javax.servlet.Filter將替換爲jakarta.servlet.Filter。但是還有一些依賴Java EE API的第三方庫,目前還沒有得到很好的支持,所以在Spring Boot 3.0中暫時會移除這類組件的支持。

由於並不是所有Spring Boot 2.x功能都可用於第一個里程碑。Spring官方計劃等第三方庫發佈jakarta兼容庫之後重新引入功能。Spring Boot依賴於Jakarta EE規範的地方,Spring Boot 3.0已升級到Jakarta EE 9中包含的版本。例如,Spring Boot 3.0使用Servlet 5.0和JPA 3.0規範。爲了區分支持Jakarta EE 8的模塊和支持Jakarta EE 9的模塊,一些項目發佈了具有不同後綴ID的Jakarta EE 9兼容模塊。例如,Undertow使用-jakartaee9後綴,而Hibernate使用-jakarta。一般來說,Spring Boot的啓動模塊會自動處理這種更改。

如果是直接聲明對第三方模塊的依賴項,則可能需要更新依賴項聲明以適應使用與EE 9兼容的後綴ID。

作爲此次升級到Jakarta EE 9的一部分,在無法獲得第三方庫的支持情況下,已經減少或刪除了對某些依賴項的支持。但是隨着生態系統逐漸適應Jakarta EE 9中的新包名稱,Spring 官方會重新引入支持。另外,推薦下 Spring boot 的實戰開源項目:https://gitee.com/yoodb/jing-xuan。

目前已刪除對以下內容的支持:

EhCache 3
H2’s web console
Hibernate’s metrics
Infinispan
Jolokia
Pooled JMS
REST Assured

  

部分支持刪除Spring Boot 3.0 中刪除了對以下依賴項的支持:

Apache ActiveMQ
Atomikos
EhCache 2
Hazelcast 3
JSON-B

  

還刪除Apache Johnzon的依賴管理,取而代之的是Eclipse Yasson。注意的是Apache Johnzon的Jakarta EE 9兼容版本可以與Spring Boot 3一起使用,但是必須在依賴項聲明中指定一個版本。Spring Boot 3.0.0-M1遷移到Spring項目的依賴版本:

Micrometer 2.0.0-M1
Spring AMQP 3.0.0-M1
Spring Batch 5.0.0-M1
Spring Data 2022.0.0-M1
Spring Framework 6.0.0-M2
Spring Integration 6.0.0-M1
Spring HATEOAS 2.0.0-M1
Spring Kafka 3.0.0-M1
Spring LDAP 3.0.0-M1
Spring REST Docs 3.0.0-M1
Spring Security 6.0.0-M1
Spring Session 2022.0.0-M1
Spring Web Services 4.0.0-M1

  

許多第三方依賴項也已更新,其中一些值得注意的是:

Artemis 2.20.0
Hazelcast 5.0
Hibernate Validator 7.0
Jakarta Activation 2.0
Jakarta Annotation 2.0
Jakarta JMS 3.0
Jakarta JSON 2.0
Jakarta JSON Bind 3.0
Jakarta Mail 2.0
Jakarta Persistence 3.0
Jakarta Servlet 5.0
Jakarta Servlet JSP JSTL 2.0
Jakarta Transaction 2.0
Jakarta Validation 3.0
Jakarta WebSocket 2.0
Jakarta WS RS 3.0
Jakarta XML Bind 3.0
Jakarta XML Soap 2.0
Jetty 11
jOOQ 3.16
Tomcat 10

  

除了上面列出的更改之外,還有一些小的調整和改進,包括:1. 對Java的SecurityManager支持,在JDK中被棄用後,Spring Boot 3.0.0-M1中已被刪除;2. 對Spring Framework的CommonsMultipartResolver的支持,在Spring Framework 6中刪除後,Spring Boot 3.0.0-M1中也已經被刪除。Spring官方消息,計劃每兩個月發佈一個新的Spring Boot 3.0里程碑,在今年3月24日發佈Spring Boot 3.0.0-M2,計劃在11月下旬發佈GA版本。如果感興趣或者想嘗試這個新版本的朋友,可以從start.spring.io生成一個項目,注意選擇Java 17。有什麼想說的歡迎下方留言!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章