如何啟用?Java?AOT?編譯打包?Solon?項(xiàng)目(Solon?AOT)
1、Java 的 AOT(Ahead-Of-Time)
AOT(Ahead-Of-Time)編譯是與 JIT(Just-In-Time)相對(duì)的一種編譯方式。
在 AOT 模式下,Java 字節(jié)碼(Bytecode)在程序運(yùn)行之前,就被提前編譯為目標(biāo)平臺(tái)的本地機(jī)器代碼。
2、Solon AOT
Solon AOT 是 Java AOT 的增強(qiáng)模式。可借助容器在運(yùn)行時(shí)收集相關(guān)的類信息,然后在打包時(shí)為有 “動(dòng)態(tài)代理需求的類” 生成對(duì)應(yīng)具體類(類名風(fēng)格,Xxx$$SolonAotProxy.class)。
使用條件要求:
- 使用 solon-maven-plugin 打包方式
- 要求 java 17+ (java 17 后才支持 AOT)
大概的構(gòu)建過(guò)程(過(guò)程為自動(dòng)):
編譯(生成 .class 文件) -> Solon AOT(運(yùn)行->收集->生成補(bǔ)充的 .class 文件) -> 打包
3、使用 solon-parent
<parent>
<groupId>org.noear</groupId>
<artifactId>solon-parent</artifactId>
<version>最新版本</version>
</parent>以 maven 打包為例,啟用配置文件 native(會(huì)自動(dòng)啟用一批配置),然后使用 maven 的 pakage 命令即可。
補(bǔ)充說(shuō)明:
- 使用 maven:pakage 打包,會(huì)使用 AOT 編譯,生成常規(guī)的 jar 包
- 使用 graalvm:native:build 打包,會(huì)使用 AOT 編譯,且生成 graalvm image (具體參考專題資料)

4、如果沒有使用 solon-parent
以 maven 打包為例,在 pom.xml 手動(dòng)添加一個(gè) native profile(名字便取,叫 AOT 也挺好的)。之后,參考上面的說(shuō)明。
<profiles>
<profile>
<id>native</id>
<build>
<plugins>
<plugin>
<groupId>org.noear</groupId>
<artifactId>solon-maven-plugin</artifactId>
<version>${solon.version}</version>
<executions>
<execution>
<id>process-aot</id>
<goals>
<goal>process-aot</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon-aot</artifactId>
</dependency>
</dependencies>
</profile>
</profiles>配置內(nèi)容說(shuō)明:
org.noear:solon-aot依賴包,封裝了 aot 的關(guān)鍵工作:收集類信息,生成補(bǔ)充類solon-maven-plugin:process-aot則是關(guān)聯(lián)編譯行為,在編譯后,再進(jìn)行 Solon AOT 二次編譯
到此這篇關(guān)于如何啟用 Java AOT 編譯打包 Solon 項(xiàng)目(Solon AOT)的文章就介紹到這了,更多相關(guān)Java AOT 編譯打包 Solon 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中向文件寫入數(shù)據(jù)的幾種常見方式分享
在日常開發(fā)中,肯定離不開要和文件打交道,今天就簡(jiǎn)單羅列一下平時(shí)比較常用的創(chuàng)建文件并向文件中寫入數(shù)據(jù)的幾種方式,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下2023-10-10
java基礎(chǔ)之TreeMap實(shí)現(xiàn)類全面詳解
這篇文章主要為大家介紹了java基礎(chǔ)之TreeMap實(shí)現(xiàn)類全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
java中Callback簡(jiǎn)單使用總結(jié)
正好學(xué)習(xí)到j(luò)ava Callback,就整理了一下,希望整理的文章內(nèi)容對(duì)大家有所幫助2017-04-04
Java獲取手機(jī)號(hào)碼歸屬地的實(shí)現(xiàn)
這篇文章主要介紹了Java獲取手機(jī)號(hào)碼歸屬地的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
關(guān)于Spring?Data?Jpa?自定義方法實(shí)現(xiàn)問(wèn)題
這篇文章主要介紹了關(guān)于Spring?Data?Jpa?自定義方法實(shí)現(xiàn)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
springboot表單提交之validator校驗(yàn)
在前臺(tái)表單驗(yàn)證的時(shí)候,通常會(huì)校驗(yàn)一些數(shù)據(jù)的可行性,比如是否為空,長(zhǎng)度,身份證,郵箱等等,這篇文章主要給大家介紹了關(guān)于springboot表單提交之validator校驗(yàn)的相關(guān)資料,需要的朋友可以參考下2021-05-05

