博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Micronaut for Spring支持Spring Boot应用以Micronaut形式运行
阅读量:6371 次
发布时间:2019-06-23

本文共 2284 字,大约阅读时间需要 7 分钟。

在小版本发布的同时,Object Computing, Inc.(OCI)还发布了。在中这样写到:

Micronaut for Spring添加了对Spring基于注解的编程模型的支持,这种模型已经有很长时间的历史了,这样所构建的Micronaut应用和库能够与Micronaut和Spring协作。

Micronaut for Spring采用预先编译的方式,能够实现如下功能:将Spring组件集成到Micronaut应用中;将Spring应用运行为Micronaut应用;将Micronaut bean暴露给Spring应用。

是微软的软件工程师,最近:

在Spring Boot和MicroProfile中开发人员认为理所应当的事情,Micronaut却采用了一种与众不同的方式来实现。Micronaut没有像Spring Boot和MicroProfile那样进行运行时的注解处理,而是使用了编译时的注解处理器,除了你自己的代码以外,这些处理器会编译生成额外的类。这意味着启动时间会大幅减低,因为它减少了扫描项目classpath所需要的开销。实际上,Micronaut会尽可能避免使用反射,只有在绝对必要的时候才会使用。

之前被称为Particle项目,它是一个全栈的基于JVM的框架,用于创建基于微服务的、云原生的、serverless应用,可以使用Java、Groovy和Kotlin编写。是OCI的首席软件工程师、Grails和Micronaut产品的负责人,他在2018年3月的。,Micronaut经历了三个候选版本,这些版本之间的间隔时间都不超过三周,在此之后的2018年10月底,。

样例应用

Micronaut for Spring 中包含了一个,该样例阐述了如何使用Micronaut for Spring,同时包含了将应用转换为原生镜像的工具。

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

现在,我们可以在上运行Spring应用,它已经完全兼容Spring基于注解的编程模型。通过Micronaut for Spring,样例应用可以转换为GraalVM原生镜像。

如下的两条命令会开始这样的转换过程:

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

Micronaut的类会用来分析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脚本,借助该脚本,能够自动化这个过程。生成的原生镜像可执行文件greeting-service可以通过如下的方式进行调用以启动服务器:

./greeting-service

原生镜像应用就是为了快速启动而设计的,它的初始化时间只有42毫秒:

\"\"

相关资源:

  • 撰写的(2018-10-3)
  • InfoQ上的(2018-10-23)
  • 编写的(2018-10-23)

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

转载地址:http://xvyqa.baihongyu.com/

你可能感兴趣的文章
js 判断回文字符串
查看>>
shields小徽章是如何生成的?以及搭建自己的shield服务器
查看>>
猫头鹰的深夜翻译:spring事务管理
查看>>
记一次使用Spring REST Docs + travis + github自动生成API接口文档的操作步骤(下)...
查看>>
1、集合 2、Iterator迭代器 3、增强for循环 4、泛型
查看>>
关于/var/run/docker.sock
查看>>
SCrapy爬虫大战京东商城
查看>>
用 JavaScript 实现链表操作 - 11 Alternating Split
查看>>
Laravel优秀扩展包整理
查看>>
日志分析之识别真假蜘蛛与处理办法
查看>>
太多脚本将会毁掉持续交付
查看>>
一地鸡毛 OR 绝地反击,2019年区块链发展指南
查看>>
卢森堡大学发布RepuCoin系统,可破解区块链51%攻击
查看>>
国内云计算厂商众生相:四大阵营十几家企业生存盘点
查看>>
细说Unicode(一) Unicode初认识
查看>>
Node.js有了新的管理者
查看>>
Java 20年:历史与未来
查看>>
彻底理解Javascript中的原型链与继承
查看>>
腾讯最大规模裁撤中层干部,让贤年轻人
查看>>
如何:强化 TCP/IP 堆栈安全
查看>>