当前位置: 首页 > 工具软件 > Helidon > 使用案例 >

Helidon项目的0.11.0版本带来了许多API更改

华化
2023-12-01

不到六个月前就宣布了Helidon项目,但是这个新的开源Java微服务框架已经开始形成。 我们并不是在谈论1.0的大发布,但是0.11.0同样重要。

应该注意的是,该团队已经对最新版本的 API进行了一些更改,以准备1.0,这意味着在升级到0.11.0时,您将需要对应用程序进行更改。 您可以在此处找到更改列表。

改进列表不仅包括API重构,还让我们快速了解一下:

  • WebServer:在SE 287中添加运行状况支持
  • MicroProfile:JWT Auth 208
  • MicroProfile:更新为容错1.1.3 253
  • WebServer:将Netty更新为4.1.30 269
  • CDI扩展:添加MySQL CDI集成示例284
  • 配置:GenericType支持配置映射238
  • 配置:Java Beans支持197
  • 构建:在Windows 252上构建
  • 文档:添加创建Docker镜像指南182
  • 文档:添加开发指南

Helidon 0.11.0还包含一些修复程序:

  • WebServer:检测并允许HTTPURLConnection 309发送的默认Accept标头
  • WebServer:确保使用Jersey 317进行正确的路径编码
  • CDI扩展:将集成模块添加到bom pom 198
  • 容错:内存改进180
  • 构建:使用Java 11 225编译时失败

还请参见: “如果您是Java开发人员并且正在编写微服务,那么Helidon是一个不错的选择”

九月10,2018

如果您需要一种更简单的构建微服务的方法,则应尝试一下Helidon项目。 尽管Oracle刚刚开源了这套Java库,但是该项目本身并不新鲜,正如Helidon项目负责人Dmitry Kornilov在最近的博客文章中解释的那样。 这项工作是在一段时间前开始的,该技术巨头已经在10多个项目中使用了它。

Helidon项目(在希腊语中是吞咽的意思)旨在使构建微服务的体验更加令人愉悦-您当然可以为此使用Java EE,但是当有现成的框架时,为什么不使用它呢?

我们希望创建一组轻量级的库,这些库不需要应用程序服务器,并且可以在Java SE应用程序中使用。 这些库可以彼此分开使用,但是当一起使用时,它们将提供开发人员创建微服务所需的一切: 配置安全性Web服务器

德米特里·科尼洛夫Dmitry Kornilov)

Helidon项目:

简单快捷

使用Helidon很容易; 由于该项目是运行在快速Netty核心上的库的集合,因此您不必担心额外的开销或膨胀。

响应式Web服务器

Helidon Reactive WebServer轻巧,灵活且具有反应性,并且易于使用-更不用说为您的微服务提供快速基础。

可观察且有弹性

如果您想要编写与Prometheus,Zipkin和Kubernetes集成的可用于云的应用程序,那么Helidon是适合您的项目。 我们是否提到过它为运行状况检查,指标,跟踪和容错提供支持?

MicroProfile支持

Helidon支持MicroProfile,并提供熟悉的API,如JAX-RS,CDI和JSON-P / B。 MicroProfile实现在Helidon Reactive WebServer上运行。

Helidon的基础由三个元素组成:

  • WebServer:由Netty支持的具有响应功能的编程HTTP API。
  • Config:灵活的配置框架,支持多种来源和格式
  • 安全性:处理身份验证,授权和上下文传播的工具链。

用户可以从以下两种编程模型中选择一种:

  • Helidon SE:一种功能性编程样式,直接使用Helidon WebServer,Config和Security API。 这样,您将具有完全的透明度和控制力。 JDK用作运行时。
  • Helidon MP更具声明性,并支持MicroProfile API系列。 如果您是Java EE / Jakarta EE开发人员,则应该熟悉此模型。

在开始使用两种编程模型中的任何一种之前,请看一下快速入门示例

入门

开始使用这组库的最简单方法是,如果您使用带有Java 8(或更高版本)的Maven项目并配置Helidon bom-pom。

<dependencyManagement>
   <dependencies>
       <dependency>
           <groupId>io.helidon</groupId>
           <artifactId>helidon-bom</artifactId>
           <version>${helidon-version}</version>
           <type>pom</type>
           <scope>import</scope>
       </dependency>
   </dependencies>
</dependencyManagement>

Helidon SE的Hello World实现如下所示:

Routing routing = Routing.builder()
       .get("/hello", (req, res) -> res.send("Hello World"))
       .build();

WebServer.create(routing)
       .start();

对于Helidon MP,您需要创建一个JAX-RS资源类来处理您的请求

@Path("hello")
@RequestScoped //allows us to use CDI injection
public class HelloWorld {
   @GET
   @Metered
   public String hello() {
       return "Hello World";
   }
}

之后,您必须使用以下资源启动服务器:

Server.builder()
       .addResourceClass(HelloWorld.class)
       .build()
       .start();

并在src / main / resources / META-INF目录中创建beans.xml文件以触发此项目中的CDI注入:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_2_0.xsd" bean-discovery-mode="annotated">
</beans>

这将在默认端口(7001)上启动Web服务器,并公开端点“ / hello”

Helidon项目的下一步是什么

Dmitry在博客文章中说,该项目背后的团队正在努力实现下一个MicroProfile版本以及GraalVM支持。

为确保您不会错过任何即将推出的功能,请查看网站GitHub存储库 ,并在Twitter上关注它们。

如果您想了解更多有关该项目的信息,将在Oracle Code One 2018上进行一些与Helidon相关的演讲,该团队将参加EclipseCon Europe 2018的Jakarta EE / MicroProfile社区日。

翻译自: https://jaxenter.com/meet-helidon-java-framework-149190.html

 类似资料: