大家好,我是你們的碼農大哥——堆疊長,
6 月初的時候給大家介紹了 Spring 團隊的最新殺手锏專案:Spring Native,它的存在就是干掉 JVM,另起一個 JVM 之外的生態,上篇也簡單實戰了一下,相信大家都有了一個全新的認知,沒看過的可以點鏈接進去看下,
Spring Native 上一個版本為:0.9.2,只支持 Spring Boot 2.4.5,
Spring Native 最近又發布了基于 Spring Boot 2.5 和 GraalVM 21.1 的最新 0.10.0 版本:

Spring Boot 前陣子剛升級到 Spring Boot 2.5.1,Spring Native 現在就開始支持 Spring Boot 2.5,支持進度真快,對研究 Spring Native 的同學也是福音了,,
Spring Native 0.10.0 帶來了一些新特性,還包括 43 個 bug 修復、檔案改進、依賴升級等,
Spring Native 0.10.0 新特性
1、支持 Gradle 插件
以前僅提供 Maven 插件支持,現在終于可以支持官方 Gradle 插件了,
并且,還提供了新的構建工具(native-build-tools):
https://github.com/graalvm/native-build-tools
它取代了之前的 native-image-maven-plugin 插件,它可以通過本地原生鏡像編譯器來構建和測驗你的原生應用,
這個升級就感覺有點大,意味著之前那個插件的玩法就行不通了,需要用這個新的構建工具插件,,
2、支持原生測驗
現在可以使用 mvn -Pnative test 或 gradle nativeTest 以原生鏡像的方式運行 JUnit 5 單元測驗用例,
另外,Spring Native 現在也添加了單元測驗初始化支持,因此以 @SpringBootTest 撰寫的單元測驗用例也可以作為原生鏡像運行,Spring Boot 單元測驗不清楚的,可以關注公眾號:Java技術堆疊,看看堆疊長寫的教程,
3、支持基于類的代理
我們都知道,原生鏡像需要在構建時就定義代理,在前面的 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-projects-experimental/spring-native/releases
快速開啟 Spring Native:
https://start.spring.io/

如圖所示,Spring Native 目前還屬于體驗專案,但它無需 JVM,有更快的性能、更少的資源占用,這肯定是未來的趨勢,有興趣的可以研究下,有不清楚的可以看看堆疊長的 Spring Native 實戰,原始碼已經上傳:
https://github.com/javastacks/javastack
堆疊長有時間也會繼續研究分享 Spring Native 動態及教程,公眾號Java技術堆疊第一時間推送,請大家持續關注哦!
最后,覺得我的文章對你用識訓的話,動動小手,給個在看、轉發,原創不易,堆疊長需要你的鼓勵,
參考資料:
https://spring.io/blog/2021/06/14/spring-native-0-10-0-available-now
https://github.com/spring-projects-experimental/spring-native
著作權申明:本文系公眾號 "Java技術堆疊" 原創,原創實屬不易,轉載、參考本文內容請注明出處,禁止抄襲、洗稿,請自重,尊重大家的勞動成果和知識產權,抄襲必究,
近期熱文推薦:
1.1,000+ 道 Java面試題及答案整理(2021最新版)
2.終于靠開源專案弄到 IntelliJ IDEA 激活碼了,真香!
3.阿里 Mock 工具正式開源,干掉市面上所有 Mock 工具!
4.Spring Cloud 2020.0.0 正式發布,全新顛覆性版本!
5.《Java開發手冊(嵩山版)》最新發布,速速下載!
覺得不錯,別忘了隨手點贊+轉發哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/288193.html
標籤:其他
上一篇:java學習筆記1(入門級)
