在正式发布 Helidon 1.0 不到一年之后,Oracle正朝着正式发布计划于2020年春末发布的Helidon 2.0迈进。在2月初发布的Helidon 2.0.0-M1和Helidon 2.0中。 3月下旬发布的0-M2为Java社区提供了重要的新功能的预览,这些新功能包括:支持响应消息和流;一个新的命令行工具,一个用于Helidon SE的新Web客户端API,对Helidon MP的GraalVM支持以及一个新的反应式数据库客户端。
在Helidon 1.0.3版本中引入的对GraalVM的支持仅适用于Helidon SE应用程序。由于在CDI中使用了反射,因此Helidon MP应用程序无法利用GraalVM。作为Java社区最需要的功能之一,Helidon 2.0.0-M1引入了使用GraalVM将Helidon MP应用程序转换为本地可执行代码的支持。Oracle技术人员的咨询成员Tomas Langer已经为Java社区创建了该演示应用程序,以预览此新功能。
为了补充最初的三个Helidon SE核心API(Web服务器,配置和安全性),新的API Web Client完善了Helidon SE的功能。Web客户端处理与指定端点有关的HTTP请求和响应。就像Web服务器API一样,也可以通过**applications.yaml**文件配置Web客户端:
server:
port: 8080
host: 0.0.0.0
client:
connect-timeout-millis: 2000
read-timeout-millis: 2000
follow-redirects: true
max-redirects: 5
headers:
- name: "Accept"
value: ["application/json","text/plain"]
services:
exclude: ["some.webclient.service.Provider"]
config:
metrics:
- methods: ["PUT", "POST", "DELETE"]
type: COUNTER
name-format: "client.counter.%1$s.%2$s"
考虑一个小示例,其中**WebClient**构建了接口的实例,并定义了一个响应以返回纯文本:
WebClient client = WebClient.builder()
.baseUri("http://localhost")
.build();
CompletionStage<String> response = webClient.get()
.path("/endpoint")
.request(String.class);
要更改响应以返回JSON,只需构建**JsonProcessing类的实例并更改response**变量的定义即可:
JsonProcessing jsonProcessing = JsonProcessing.create();
CompletionStage<JsonObject> response = webClient.get()
.path("/endpoint")
.register(jsonProcessing.newReader())
.request(JsonObject.class);
为了解决与响应性应用程序连接到设计为非响应性的JDBC数据库相关的挑战,Helidon 2.0.0-M1引入了新的DB Client,它将为Helidon SE应用程序提供一致的响应性数据库访问和查询。DB Client支持通过JDBC和用于MongoDB的反应式驱动程序连接的关系数据库。这个新的API将具有指定数据库连接并在配置文件中编写本机查询代码的功能,从而可以轻松进行与数据库相关的更改,而无需重新编译代码:
db:
source: "jdbc"
connection:
url: "jdbc:mysql://127.0.0.1:3306/pokemon?useSSL=false"
username: "user"
password: "password"
poolName: "mysql"
statements:
ping: "DO 0"
select-all-pokemons: "SELECT id, name FROM Pokemons"
DB Client中还将包括对指标,运行状况检查和跟踪的支持。Helidon团队已为Java社区创建了此演示应用程序,以预览此新功能。
在Helidon 2.0.0-M2中引入的开发人员现在可以使用新的Helidon CLI工具通过命令行创建,构建和运行Helidon应用程序。类似于Quarkus(quarkus:dev)提供的热重载,内置的开发循环监视源文件,该源文件在源代码更改时触发应用程序的重新启动。需要单独下载和安装。安装后,可用的命令行选项如下所示:
异步消息传递是微服务应用程序的组成部分。为此,将在2.0版中引入MicroProfile独立API,反应式消息传递和反应式流运算符的实现。这两个API均可用于Helidon SE和Helidon MP应用程序。但是,只有响应消息才可用于Helidon MP。为了更好地与Helidon SE API保持一致,计划在将来的版本中使用等效的Reactive Messaging API。Helidon还将支持Kafka进行即时消息传递,并计划在将来的版本中增加其他连接器。
Java社区可以期望在Helidon 2.0的最终版本中做出一些重大更改。最值得注意的是,已经放弃了对Java 8的支持,而JDK 11将成为构建Helidon应用程序所需的最低Java版本。某些Helidon软件包也将被删除**java.util,java.lang而在和中找到相应的软件包java.io**。Helidon 2.0中所有更改的详细信息都可以在更改日志中找到。
Oracle即将发布Helidon 2.0,为Java社区带来重大更新,包括支持GraalVM的本地代码生成、新的Web客户端API、反应式数据库客户端以及改进的开发工具。此次更新放弃Java 8支持,最低要求为JDK 11。
1270

被折叠的 条评论
为什么被折叠?



