如何啟用?Java?AOT?編譯打包?Solon?項(xiàng)目(Solon?AOT)
1、Java 的 AOT(Ahead-Of-Time)
AOT(Ahead-Of-Time)編譯是與 JIT(Just-In-Time)相對的一種編譯方式。
在 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)代理需求的類” 生成對應(yīng)具體類(類名風(fēng)格,Xxx$$SolonAotProxy.class)。
使用條件要求:
- 使用 solon-maven-plugin 打包方式
- 要求 java 17+ (java 17 后才支持 AOT)
大概的構(gòu)建過程(過程為自動(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ǔ)充說明:
- 使用 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 也挺好的)。之后,參考上面的說明。
<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)容說明:
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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mybatis如何使用動(dòng)態(tài)語句實(shí)現(xiàn)批量刪除(delete結(jié)合foreach)
這篇文章主要介紹了Mybatis如何使用動(dòng)態(tài)語句實(shí)現(xiàn)批量刪除(delete結(jié)合foreach),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03Java排序算法三之歸并排序的遞歸與非遞歸的實(shí)現(xiàn)示例解析
這篇文章主要介紹了Java排序算法三之歸并排序的遞歸與非遞歸的實(shí)現(xiàn)示例解析,文章通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08解決在IDEA中創(chuàng)建多級(jí)package的問題
這篇文章主要介紹了解決在IDEA中創(chuàng)建多級(jí)package的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02Spring Boot(四)之使用JWT和Spring Security保護(hù)REST API
這篇文章主要介紹了Spring Boot(四)之使用JWT和Spring Security保護(hù)REST API的相關(guān)知識(shí),需要的朋友可以參考下2017-04-04