容器平台和边缘计算持续增长,为全球主要的网络和应用提供动力,Java 技术也在不断发展新的特性和改进性能,以匹配现代基础设施的步伐。Java 17 (OpenJDK 17) 最近发布(2021 年 9 月),包含以下主要特性:
- 恢复始终严格的浮点语义
- 增强型伪随机数生成器
- 强封装 JDK 内部实现
- switch 语句的模式匹配(预览)
- 外部函数与内存 API(孵化器)
- 向量 API(第二个孵化器)
- 上下文相关的反序列化过滤器
开发者们正在考虑如何使用 Java 17 的新特性开始实现应用程序逻辑,然后在同一个 OpenJDK 17 运行时上构建和运行它们。幸运的是,Quarkus 使开发者能够使用 Java 17 搭建一个新的应用程序。它还提供了一个实时编码功能,允许开发者只专注于实现业务逻辑,而无需编译、构建、部署和重启运行时来应用代码更改。
注意:如果您还没有安装 OpenJDK 17,请在您的操作系统上下载一个二进制文件。
本教程教您如何在 Quarkus 上使用 Java 17 的伪随机数生成器 (PRNG) 算法。首先使用 Quarkus 命令行工具 (CLI) 搭建一个新项目
$ quarkus create app prng-example --java=17
输出看起来像这样
...
[SUCCESS] ✅ quarkus project has been successfully generated in:
--> /Users/danieloh/quarkus-demo/prng-example
...
与传统的 Java 框架不同,Quarkus 为开发者提供了在代码更改时重新构建和部署的实时编码功能。最终,这个功能加速了 Java 开发者的内部循环开发。使用 Dev 模式运行您的 Quarkus 应用程序
$ cd prng-example
$ quarkus dev
输出看起来像这样
...
INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
INFO [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, resteasy, smallrye-context-propagation, vertx]
--
Tests paused
Press [r] to resume testing, [o] Toggle test output, [:] for the terminal, [h] for more options>
Java 17 使开发者能够基于 Xoshiro256PlusPlus PRNG 算法生成特定范围内的随机整数。将以下代码添加到 src/main/java/org/acme
目录中的 hello()
方法中
RandomGenerator randomGenerator = RandomGeneratorFactory.of("Xoshiro256PlusPlus").create(999);
for ( int i = 0; i < 10 ; i++) {
int result = randomGenerator.nextInt(11);
System.out.println(result);
}
接下来,调用 RESTful API (/hello
) 以确认生成了随机整数。在本地终端中执行以下 cURL 命令行,或使用 Web 浏览器访问端点 URL
$ curl localhost:8080/hello
返回到您正在运行 Quarkus Dev 模式的终端。您将在那里看到以下十个随机数
4
6
9
5
7
6
5
0
6
10
注意:您根本不需要重建代码和重启 Java 运行时。您还将在运行 curl
命令行的终端中看到输出 Hello RESTEasy。
总结
本文展示了 Quarkus 如何允许开发者基于 OpenJDK 17 启动新的应用程序开发。此外,Quarkus 通过实时编码提高了开发者的生产力。对于生产环境部署,开发者可以基于 OpenJDK 17 和 GraalVM 创建一个原生可执行文件。
评论已关闭。