今天我們要介紹的是spring-native,它可以讓你的spring boot程序,體驗graalvm編譯器的特性,把你的應用直接編譯成native的!
不需要再安裝jre,你的應用程序將和exe一樣,直接在目標機器上運行!而且啟動時間不到1秒鐘 。
要體驗這個功能,我們從spring boot拿一個demo 。
https://start.spring.io/ 在這里選擇這個實驗性的功能SpringNative 。下載下來之后,就可以使用maven進行打包測試 。
mvn spring-boot:build-imagegradle bootBuildImage 看一下這無敵的啟動速度…. 0.038秒… 幾乎是瞬時的!
神奇!
這一切,都得益于graalvm編譯器 。不過,你至少要把JDK升級到11才能用,也算是堆Java8用戶的一種別樣的驅動吧 。
當然,只有在2.4.5以后的SpringBoot版本中,才支持Spring Native 。
GraalVM是什么? graalvm也是oracle的項目,它的代碼地址是:
mvn spring-boot:build-imagegradle bootBuildImage 項目地址是:
www.graalvm.org/docs/ graalvm是一個想要統一天下的虛擬機 。因為它相比較與HotSpotVM,還能夠運行其他語言比如ruby,python,php等 。
它是一個新的JVM,不同的是由于做了適配,它能夠讓不同的語言跑在同一個vm下面 。
看看下面這張圖,就知道graalvm的野心有多大 。
這還沒完,它最吸引人的地方就在于,它能夠將應用代碼,直接打包成native的二進制可執行代碼,運行時連JVM都不需要了!
大家都知道,native和跑在vm里完全是兩個檔次,否則也不會有jit這么牛x的技術存在了 。連android和ios都知道,native的應用流暢性比跑在monotouch上或者hybrid上高很多很多,對于追求性能的企業級應用來說,這個功能就更加實用一些 。
【教你創建一個普通的 Java 項目 java在線運行工具】讓人驚訝的是,它為各個語言實現了一個可以溝通的橋梁 。比如我看好js中的某個庫,不需要重新開發一個了,在Java中直接就可以用 。這是因為,graalVM開發了跨語言互操作協議,能保證跨語言的互操作性 。
現在這個功能,大多數平臺已經支持了 。
public class Example {public static void main(String[] args) {String str = "Native Image is awesome";String reversed = reverseString(str);System.out.println("The reversed string is: "reversed);}public static String reverseString(String str) {if (str.isEmpty())return str;return reverseString(str.substrin
猜你喜歡
- 運動會加油稿20字左右 運動會加油稿怎么寫
- 糯米面怎么和面 簡單方法教你輕松搞定
- 電餅鐺1200w和1500w哪一個好用
- 香腸怎么洗 香腸洗干凈的方法
- 一個月的鴨子可以吃大米嗎?
- 豆角有點老能做干豆角嗎 教你選擇怎樣的豆角可以做干豆角?
- 廣西百色鴨醬制作方法 教你廣西百色鴨醬制作方法
- 三點水一個郭怎么讀 三點水一個郭有幾個音
- 描寫一個人美麗的短句子 描寫一個人美麗怎么寫
- 紅曲米粉危害 教你紅曲米粉的正確使用方法
