日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Micronaut for Spring支持Spring Boot应用以Micronaut形式运行

發布時間:2023/12/31 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Micronaut for Spring支持Spring Boot应用以Micronaut形式运行 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Micronaut 1.0.1小版本發布的同時,Object Computing, Inc.(OCI)還發布了Micronaut for Spring 1.0 M1。在發布說明中這樣寫到:

Micronaut for Spring添加了對Spring基于注解的編程模型的支持,這種模型已經有很長時間的歷史了,這樣所構建的Micronaut應用和庫能夠與Micronaut和Spring協作。

Micronaut for Spring采用預先編譯的方式,能夠實現如下功能:將Spring組件集成到Micronaut應用中;將Spring應用運行為Micronaut應用;將Micronaut bean暴露給Spring應用。

Jonathan Giles是微軟的軟件工程師,最近討論了開發人員為何應該考慮遷移至Micronaut:

在Spring Boot和MicroProfile中開發人員認為理所應當的事情,Micronaut卻采用了一種與眾不同的方式來實現。Micronaut沒有像Spring Boot和MicroProfile那樣進行運行時的注解處理,而是使用了編譯時的注解處理器,除了你自己的代碼以外,這些處理器會編譯生成額外的類。這意味著啟動時間會大幅減低,因為它減少了掃描項目classpath所需要的開銷。實際上,Micronaut會盡可能避免使用反射,只有在絕對必要的時候才會使用。

Micronaut之前被稱為Particle項目,它是一個全棧的基于JVM的框架,用于創建基于微服務的、云原生的、serverless應用,可以使用Java、Groovy和Kotlin編寫。Graeme Rocher是OCI的首席軟件工程師、Grails和Micronaut產品的負責人,他在2018年3月的Greach會議上首次介紹了Micronaut。在實現1.0版本的過程中,Micronaut經歷了三個候選版本,這些版本之間的間隔時間都不超過三周,在此之后的2018年10月底,1.0的正式版本發布。

樣例應用

Micronaut for Spring 倉庫中包含了一個樣例應用,該樣例闡述了如何使用Micronaut for Spring,同時包含了將應用轉換為GraalVM原生鏡像的工具。

Application.java文件如下所示,在源碼層面它來源于一個Spring Boot應用,但是可以作為Micronaut應用運行:

@SpringBootApplication public class Application { public static void main(String... args) { Micronaut.run(Application.class); // SpringApplication.run(Application.class); }

Spring Boot應用和Micronaut應用的唯一差異在第5行。第6行在這里注釋掉了,只是用來進行對比,如果是Spring Boot應用的話,就會使用這一行的代碼了。

命令:

./gradlew bootRun

將會構建和初始Micronaut服務器,如果執行下面的命令:

curl -X GET http://localhost:8080/greeting?name=Mike

將會返回:

{\u0026quot;id\u0026quot;:1,\u0026quot;content\u0026quot;:\u0026quot;Hola, Mike!\u0026quot;}

GraalVM

現在,我們可以在GraalVM上運行Spring應用,它已經完全兼容Spring基于注解的編程模型。通過Micronaut for Spring,樣例應用可以轉換為GraalVM原生鏡像。

如下的兩條命令會開始這樣的轉換過程:

./gradlew assemblejava -cp build/libs/greeting-service-all.jar io.micronaut.graal.reflect.GraalClassLoadingAnalyzer

Micronaut的GraalClassLoadingAnalyzer類會用來分析Micronaut應用的類加載需求。

GraalVM Java分發版本包括了native-image工具,它能夠構建應用的原生鏡像。在調用native-image的時候,有很多可配置參數,如下面的列表所示:

native-image --no-server \\ --allow-incomplete-classpath \\ --class-path build/libs/greeting-service-all.jar \\ -H:ReflectionConfigurationFiles=build/reflect.json \\ -H:EnableURLProtocols=http \\ -H:Name=greeting-service \\ -H:Class=greeting.example.Application \\

在樣例應用中,包含了一個便利的shell腳本build-native-image.sh,借助該腳本,能夠自動化這個過程。生成的原生鏡像可執行文件greeting-service可以通過如下的方式進行調用以啟動服務器:

./greeting-service

原生鏡像應用就是為了快速啟動而設計的,它的初始化時間只有42毫秒:

相關資源:

  • Jonathan Giles撰寫的使用GraalVM原生編譯Micronaut微服務實現超快啟動(2018-10-3)
  • InfoQ上的全棧 JVM 框架 Micronaut 通向 1.0 版本之路(2018-10-23)
  • Graeme Rocher編寫的Micronaut 1.0 GA版本發布(2018-10-23)

查看英文原文:[Micronaut for Spring Allows Spring Boot Apps to Run as Micronaut Apps](

總結

以上是生活随笔為你收集整理的Micronaut for Spring支持Spring Boot应用以Micronaut形式运行的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。