Quarkus实现第一个Hello World
创始人
2024-05-01 19:15:23
0

Quarkus介绍

Quarkus 是一个为 Java 虚拟机(JVM)和原生编译而设计的全堆栈 Kubernetes 原生 Java 框架,用于专门针对容器优化 Java,并使其成为无服务器、云和 Kubernetes 环境的高效平台。

Quarkus 可与常用 Java 标准、框架和库协同工作,例如 Eclipse MicroProfile、Apache Kafka、RESTEasy(JAX-RS)、Hibernate ORM(JPA)、Spring、Infinispan、Camel 等。

Quarkus 的依赖注入解决方案基于 CDI(上下文和依赖注入),且包含一个扩展框架来扩展功能并将其配置、引导并集成到您的应用中。添加扩展就像添加依赖项一样容易;或者,您可以使用 Quarkus 工具。

此外也是引人注目的一个特点,它还向 GraalVM(一种通用虚拟机,用于运行以多种语言(包括 Java 和 JavaScript)编写的应用)提供正确信息,以便对应用进行原生编译。

安装GraalVM

GraalVM简介

    GraalVM是一种高性能的虚拟机,它可以显著的提高程序的性能和运行效率,非常适合微服务。其设计初衷是实现可以运行不同语言(Java、JavaScript、基于LLVM的语言(例如C和C ++)以及其他动态语言)编写的应用程序。它消除了不同编程语言之间的隔阂,并实现了多语言共享运行时的互操作性。它可以独立运行,也可以在OpenJDK,Node.js或Oracle数据库的上下文中运行。

在这里插入图片描述

    对于Java应用程序,GraalVM可以带来很多有价值的好处:更快地运行它们,通过脚本语言(JavaScript, R, Python…)提供可扩展性或创建提前编译的本机映像(native-image)。

GraalVM安装

    本文我们使用SDKMAN来安装GraalVM。SDKMAN是一款用于在大多数基于Unix的系统上管理多个软件开发套件的并行版本的工具。它提供了一个方便的命令行界面(CLI)和API,用于安装,切换,删除和列出候选人。它以前被称为Groovy enVironment Manager (GVM),受到了非常有用的RVM和rbenv工具的启发,该工具在Ruby社区中广泛使用。

安装SDKMAN

运行如下命令进行安装:

$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"

运行如下命令,验证是否已安装ADKMAN:

$ sdk version

安装GraalVM

注:安装前把电脑上之前安装的JDK完全卸载

运行如下命令:

$ sdk list java

可以看到SDKMAN列出了所支持的所有Java发行版,找GraalVM发行版执行以下命令安装:

注:构建原生可执行文件要求的GraalVM版本是22.1.0及以上

$ sdk install java 22.1.0.r17-grl

至此,GraalVM安装完毕!我们可以运行如下命令来判断GraalVM是否已安装:

$ java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment GraalVM CE 20.1.0 (build 11.0.7+10-jvmci-20.1-b02)
OpenJDK 64-Bit Server VM GraalVM CE 20.1.0 (build 11.0.7+10-jvmci-20.1-b02, mixed mode, sharing)

创建项目

使用IDEA创建Quarkus项目

使用IDEA创建Quarkus项目,如下图,指定JDK为刚安装的GraalVM,选择完成后点击Next

在这里插入图片描述

扩展选择,选择Web下的RESTEasy Reactive等,按照需要选择扩展。

在这里插入图片描述

项目结构如下:

在这里插入图片描述

通过resource文件下的application.properties可以修改一些参数,如应用名、监听端口等等,如下图:

在这里插入图片描述

启动项目

    Quarkus并没有像Spring Boot的项目启动类,有两种方式启动项目,如下:

  • 命令行运行
➜ ./mvnw compile quarkus:dev

如下图代表启动成功!

在这里插入图片描述

  • IDEA配置项目快捷启动

在这里插入图片描述

项目启动成功后可以看到监听8091端口,通过curl命令请求接口,结果如下:

➜  ~ curl -X GET http://localhost:8091/hello
Hello World%

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...