Micronaut发布:Java虚拟线程,GraalVM支持,实验性HTTP/3功能
2023年07月18日 由 Susan 发表
899638
0
Micronaut基金会最近宣布了Micronaut框架4.0.0的正式发布(GA)版本。这个主要版本为流行的基于 JVM 的框架带来了大量更新和改进,增强了其性能、模块化和与其他技术的兼容性。
Micronaut Framework 4.0.0 中的关键更新之一是语言基线的升级。该框架现在支持 Apache Groovy 4 和 Kotlin 1.8,并将 Java 基线设置到17。这意味着开发人员可以在构建Micronaut应用程序时利用这些语言的最新功能和改进。
对于使用 Kotlin 的开发人员,Micronaut Framework 4.0.0 引入了对 Kotlin 符号处理 (KSP) 的支持。KSP 是一个功能强大的工具,允许开发人员创建编译器插件,提供更快的性能、Kotlin 程序的惯用处理以及对源代码的只读处理,以确保清晰和安全。但是,值得注意的是,KSP 支持目前仅适用于 Gradle。
新版本的Micronaut还带来了对GraalVM的改进支持,GraalVM是一种通用虚拟机,可以运行用各种语言编写的应用程序。Micronaut Framework 4.0.0支持最新的GraalVM版本,并已转向GraalVM的运行时初始化。此更改可确保实时性 和本机应用程序之间的行为一致,使开发人员能够更轻松地构建高性能、低占用空间的应用程序。
Micronaut Framework 4.0.0 需要 Gradle 8 来构建 Micronaut 应用程序。Gradle 是一款功能强大的构建工具,可自动构建、测试、发布和部署软件包或其他类型的项目。通过要求 Gradle 8,Micronaut 确保开发人员可以利用 Gradle 中的最新功能和改进,例如用于依赖项管理的改进版本目录功能。
此版本中的另一个重要补充是引入了表达式语言。此功能允许开发人员将表达式放在批注中,从而提供了一种配置和自定义其应用程序行为的强大方法。Micronaut 表达式语言默认设计为安全,所有表达式在编译时进行评估、类型检查和无反射。
例如,开发人员可以使用带有Micronaut安全注释的表达式来实现复杂的安全规则。请考虑以下示例,了解如何将表达式与
@Secured
注释一起使用:
@Secured("user.attributes.get('email') == 'sherlock@micronaut.example'")
public void someSecureMethod() { }
在此示例中,
someSecureMethod()
方法仅在当前用户的电子邮件属性为
“sherlock@micronaut.example
”时可访问。
Java的Project Loom是一项持续的努力,旨在向Java平台添加轻量级,高效的线程(称为“虚拟线程”)。Micronaut Framework 4.0.0 检测自 Java 19 以来可用的虚拟线程支持,并将其用于名为“BLOCKING”的执行程序(如果可用)。这意味着 Micronaut 应用程序在 Java 19 或更高版本运行时运行时可以自动利用虚拟线程,从而提高资源使用效率并可能获得更好的性能。
Micronaut 4.0.0也为其HTTP层带来了重大改进。HTTP 层已被重写,以提高性能,并在不使用响应式编程(例如使用虚拟线程)时减少反应式堆栈帧的存在。这可以更有效地处理HTTP请求和响应,并提高Micronaut应用程序的整体性能。
此外,Micronaut 4.0.0还包括对HTTP / 3的实验性支持,以及通过Netty孵化器项目对io_uring的实验性支持。HTTP/3 是 HTTP 协议的最新版本,提供改进的性能、更好的数据包丢失处理和其他好处。io_uring 是用于 Linux 内核系统调用的全新高性能 I/O 接口。通过为这些技术提供实验支持,Micronaut允许开发人员对它们进行实验,并有可能在其应用程序中实现更好的性能和效率。
该版本还引入了基于注释的过滤器,基于Java HTTP客户端的Micronaut HTTP客户端的新实现,以及对Gradle和Maven插件的OpenAPI Spec代码生成的支持。向
jakarta
命名空间的过渡已经完成,将各种
javax
包替换为它们的 Jakarta EE 等效项。此外,为了提高模块化,一些功能被拆分为单独的模块。
尽管如此,这个版本标志着这个流行的基于 JVM 的框架发展的一个重要里程碑。凭借其众多更新和改进,它为开发人员提供了一个强大、灵活且高效的平台,用于构建微服务和无服务器应用程序。
来源:https://www.infoq.com/news/2023/07/micronaut-brings-virtual-thread/