Spring Native 0.10.0 發佈,重大突破!!

你們好,我是大家的碼農大哥——棧長。java

6 月初的時候給你們介紹了 Spring 團隊的最新殺手鐗項目:Spring Native,它的存在就是幹掉 JVM,另起一個 JVM 以外的生態,上篇也簡單實戰了一下,相信你們都有了一個全新的認知,沒看過的能夠點連接進去看下。git

Spring Native 上一個版本爲:0.9.2,只支持 Spring Boot 2.4.5。

Spring Native 最近又發佈了基於 Spring Boot 2.5 和 GraalVM 21.1 的最新 0.10.0 版本:github

Spring Boot 前陣子剛升級到 Spring Boot 2.5.1,Spring Native 如今就開始支持 Spring Boot 2.5,支持進度真快,對研究 Spring Native 的同窗也是福音了。。面試

Spring Native 0.10.0 帶來了一些新特性,還包括 43 個 bug 修復、文檔改進、依賴升級等。spring

Spring Native 0.10.0 新特性

一、支持 Gradle 插件

之前僅提供 Maven 插件支持,如今終於能夠支持官方 Gradle 插件了。安全

而且,還提供了新的構建工具(native-build-tools):intellij-idea

https://github.com/graalvm/na...

它取代了以前的 native-image-maven-plugin 插件,它能夠經過本地原生鏡像編譯器來構建和測試你的原生應用。maven

這個升級就感受有點大,意味着以前那個插件的玩法就行不通了,須要用這個新的構建工具插件。。ide

二、支持原生測試

如今能夠使用 mvn -Pnative testgradle nativeTest 以原生鏡像的方式運行 JUnit 5 單元測試用例。工具

另外,Spring Native 如今也添加了單元測試初始化支持,所以以 @SpringBootTest 編寫的單元測試用例也能夠做爲原生鏡像運行。Spring Boot 單元測試不清楚的,能夠關注公衆號:Java技術棧,看看棧長寫的教程。

三、支持基於類的代理

咱們都知道,原生鏡像須要在構建時就定義代理,在前面的 Spring Native 版本中,Spring Native 也只能支持基於接口的 JDK 代理,不支持經過 CGLIB 基於普通類的代理,由於 Spring Native 的原生特性就不能支持在運行時生成字節碼。

// Typical security use case of a class proxy now supported on native
@Service
public class GreetingService {

    public String hello() {
        return "Hello!";
    }
    
    @PreAuthorize("hasRole('ADMIN')")
    public String adminHello() {
        return "Goodbye!";
    }
}

可是從 Spring Native 0.10.0 這個版本開始,基於普通類的代理也能夠搞定了,如今能夠在構建時經過 @AotProxyHint 註解來生成類的代理,這真是一個大的突破,牛皮!!!

須要注意的是:

之前的 @ProxyHint 已重命名爲 @JdkProxyHint,以免混淆。

它支持安全性、事務、以及其餘基於普通類的代理機制,後續也將改進對此類模式的自動檢測,以減小大量所需的顯示提示。

總結

本文介紹了 Spring Native 0.10.0 的 3 個重要的核心特性,每一個都是重磅,能夠看出 Spring Native 還處於快速的更新迭代中。

更多發佈的細節能夠參考:

https://github.com/spring-pro...

快速開啓 Spring Native:

https://start.spring.io/

如圖所示,Spring Native 目前還屬於體驗項目,但它無需 JVM,有更快的性能、更少的資源佔用,這確定是將來的趨勢,有興趣的能夠研究下,有不清楚的能夠看看棧長的 Spring Native 實戰,源碼已經上傳:

https://github.com/javastacks...

棧長有時間也會繼續研究分享 Spring Native 動態及教程,公衆號Java技術棧第一時間推送,請你們持續關注哦!

最後,以爲個人文章對你用收穫的話,動動小手,給個在看、轉發,原創不易,棧長鬚要你的鼓勵。

參考資料:

https://spring.io/blog/2021/0...

https://github.com/spring-pro...

版權申明:本文系公衆號 "Java技術棧" 原創,原創實屬不易,轉載、引用本文內容請註明出處,禁止抄襲、洗稿,請自重,尊重你們的勞動成果和知識產權,抄襲必究。

近期熱文推薦:

1.1,000+ 道 Java面試題及答案整理(2021最新版)

2.終於靠開源項目弄到 IntelliJ IDEA 激活碼了,真香!

3.阿里 Mock 工具正式開源,幹掉市面上全部 Mock 工具!

4.Spring Cloud 2020.0.0 正式發佈,全新顛覆性版本!

5.《Java開發手冊(嵩山版)》最新發布,速速下載!

以爲不錯,別忘了隨手點贊+轉發哦!

相關文章
相關標籤/搜索