Java 云原生之路:Micronaut 框架

本文介绍了Java云原生开发框架Micronaut,它通过编译时处理减少反射和动态类加载,提高了性能和启动速度。Micronaut不仅适用于微服务,还支持多种应用程序类型,其特色包括配置注入、AOP编程和云原生功能。框架与GraalVM原生镜像的结合,使得构建轻量级、高性能的Java应用成为可能。文章还探讨了使用Micronaut的原因、入门方法以及如何构建原生可执行文件。
摘要由CSDN通过智能技术生成

本文是“Native Compilations Boosts Java”系列文章的一部分。你可以通过订阅 RSS 接收更新通知。

Java 主导着企业级应用。但在云计算领域,采用 Java 的成本比它的一些竞争对手更高。原生编译降低了在云端采用 Java 的成本:用它创建的应用程序启动速度更快,使用的内存更少。

那么,Java 用户的问题来了:原生 Java 是如何改变开发方式的?我们在什么情况下应该切换到原生 Java?什么情况下又不应该切换?我们应该使用什么框架?本系列文章将回答这些问题。

对服务器端 Java 认识的改变

2017 年,Java 服务器端出现了一个认知问题。随着向微服务和轻量级容器化运行时的转变,开发人员开始注意到传统 Java 应用程序的膨胀,它们被打包并部署到 Servlet 容器的共享 Java 虚拟机 (JVM) 上。Serverless 的出现进一步加剧了这种认知。

正是在这段时间,Object Computing 的一个团队开始重新思考如何从头开始设计 Java 框架。于是 Micronaut 框架诞生了,这是一个采用了不同做法的 Java 框架,它通过使用 Java 注释将框架的组装计算工作所转移到了编译阶段。这完全消除了传统 Java 框架使用的反射、运行时生成代理和复杂的动态类加载。

2018 年 4 月,Micronaut 框架首次公开发布,引发了 Java 社区巨大的思维变化,改变了人们对 Java“缓慢而臃肿”的看法。许多较新的项目也采取了类似的做法:将更多的逻辑转移到应用程序的构建和编译阶段,以此来优化应用程序的启动性能和消除反射。

构建编译时的好处很明显:在编译时计算更多的东西,那么在运行时就可以以最优的方式执行。消除了反射、动态类加载和运行时生成代理,为我们提供了进一步的下游优化机会,包括 JIT 和 (关键的是)GraalVM 的原生镜像工具。因为采用了这种方法,原生镜像不需要额外的配置信息就可以对 Micronaut 框架应用程序进行静态分析。

由于 Micronaut 框架和 GraalVM 之间存在这种协同作用,Micronaut 框架联合创始人 Graeme Rocher 加入了 Oracle Labs。Oracle Labs 不仅有 GraalVM,也为正在进行的 Micronaut 框架的开发做出了重大贡献。

Micronaut 框架介绍

人们对 Micronaut 框架的一个常见误解是,它是专为微服务设计的。事实上,Micronaut 框架也为一系列应用程序类型提供了一种极限模块化的架构!

Micronaut 框架实现了 JSR-330 依赖注入规范,并提供了许多附加的内置特性,是一个绝佳的基于注解编程模型的通用框架。它的特性包括:

配置注入;

AOP 编程概念,如拦截器;

内置了对云原生应用程序基本概念的支持,如验证、缓存、弹性重试、作业调度等。Micronaut 基于 Netty I/O 工具包构建了一个 HTTP 服务器和 HTTP 客户端。

用户已经用 Micronaut 框架来构建无服务器应用程序、命令行应用程序,甚至是 JavaFX 应用程序。

Micronaut 框架为广泛的模块生态系统提供了基础,Micronaut 可以帮助它们解决一系列问题。正是由于这种灵活性,Micronaut 框架在开发者当中得到了极大的普及。以下 Micronaut 的架构图:

基础层基于 Java Annotation Processing (AP

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值