2.1.2 Quarkus框架的架构和核心概念

当应用Quarkus框架时,很多功能都已经打包并封装起来。这些封装的功能就是以Quarkus核心为基础的Quarkus扩展组成的。在Quarkus运行时,几乎所有的东西都已经配置好了。启动时仅应用运行时配置属性(如数据库URL)即可。

Quarkus框架中的所有元数据都是由这些扩展计算和管理的。Quarkus框架的架构如图2-2所示。

Quarkus框架的架构分为3个层次,分别是JVM平台层、Quarkus核心框架层和Quarkus Extensions框架层。

(1)JVM平台层

JVM平台层主要包括HotSpot VM和SubstrateVM。HotSpot VM是Sun JDK和Open JDK中所带的虚拟机,Substrate VM主要用于Java虚拟机语言的AOT编译。

•图2-2 Quarkus框架的架构

(2)Quarkus核心框架层

Quarkus核心框架层包括Jandex、Gizmo、GraalVM、Arc、Quarkus Core等。Jandex是JBoss的库。Gizmo是Quarkus开源的字节码生成库。GraalVM是一个高性能的、支持多种编程语言的执行环境,可以显著提高应用程序的性能和效率,是微服务的理想选择。Arc(DI)是Quarkus的依赖注入管理,其内容是io.quarkus.arc,这是CDI的一种实现。

(3)Quarkus Extensions框架层

Quarkus Extensions框架层包括RESTEasy、Hibernate ORM、Netty、Eclipse Vert.x、Eclipse Micro-Profile等。