SpringBoot 3.0正式發(fā)布,有這幾個(gè)新變化!
?最近幾天,Spring有了重大更新,而且更新的很頻繁,相繼推出了Spring Framework 6.0和SpringBoot 3.0。


Spring把這次升級(jí)稱之為新一代框架的開(kāi)始,下一個(gè)10年的新開(kāi)端,口號(hào)喊的挺響亮,但是很多人在看過(guò)相關(guān)的Release Note之后,表示并不買賬。
最近發(fā)布之后,有很多網(wǎng)上的資料也都發(fā)了相關(guān)介紹,但是很多文章都是直接翻譯的官方的發(fā)布公告。主要更新就是以下幾個(gè):
- A Java 17 baseline
 - Support for Jakarta EE 10 with an EE 9 baseline
 - Support for generating native images with GraalVM, superseding the experimental Spring Native project
 - Ahead-Of-Time transformations and the corresponding AOT processing support for Spring application contexts
 
首先,前兩個(gè)比較容易理解,主要說(shuō)的是依賴的服務(wù)的版本升級(jí)的信息,那就是Spring Framework 6.0和SpringBoot 3.0都要求JDK的版本最低也得是JDK 17;并且底層依賴的J2EE也遷移到了Jakarta EE 9。
雖然JDK 17有很多新的特性,并且也是目前最新的一個(gè)LTS版本。
但是其實(shí)真正的使用比較多的版本還是JDK 1.8,而Spring徹底拋棄17之前的所有版本?。?!
AOT編譯
Ahead-Of-Time,即預(yù)先編譯,這是相對(duì)于我們熟知的Just-In-Time(JIT,即時(shí)編譯)來(lái)說(shuō)的。
相比于JIT編譯,AOT指的是在程序運(yùn)行前編譯,這樣就可以避免在運(yùn)行時(shí)的編譯性能消耗和內(nèi)存消耗,可以在程序運(yùn)行初期就達(dá)到最高性能、也可以顯著的加快程序的啟動(dòng)。

AOT的引入,意味著Spring生態(tài)正式引入了提前編譯技術(shù),相比于JIT編譯,AOT有助于優(yōu)化Spring框架啟動(dòng)慢、占用內(nèi)存多、以及垃圾無(wú)法被回收等問(wèn)題。?
Spring Native
在Spring的新版本中引入了Spring Native。
有了Spring Native ,Spring可以不再依賴Java虛擬機(jī),而是基于 GraalVM 將 Spring 應(yīng)用程序編譯成原生鏡像(native image),提供了一種新的方式來(lái)部署 Spring 應(yīng)用。這種部署Spring的方式是云原生友好的。

SpringNative的優(yōu)點(diǎn)是編譯出來(lái)的原生 Spring 應(yīng)用可以作為一個(gè)獨(dú)立的可執(zhí)行文件進(jìn)行部署,而不需要安裝JVM,而且啟動(dòng)時(shí)間非常短、并且有更少的資源消耗。他的缺點(diǎn)就是構(gòu)建時(shí)長(zhǎng)要比JVM更長(zhǎng)一些。?















 
 
 












 
 
 
 