設定與安裝完成後,接下來的步驟通常是工程師們熟悉各框架與工具的第一步,建置一個簡單的「Hello World」專案。Quarkus 提供了多種建立專案的方式,這裡列舉幾個常見的選擇:
在 IntelliJ 中建立新專案時,你會在左側的 Generators 頁面看到 Quarkus 選項,選取後依照提示填寫相關資訊,點選「Next」進行下一步。
接下來,你將看到 擴展(Extensions) 的選擇界面。這裡列舉幾個常見的擴展:
quarkus-resteasy-reactive
:提供 RESTful Web 服務的支援quarkus-resteasy-reactive-jackson
:讓你可以使用 Jackson 進行 JSON 序列化和反序列化,是處理 JSON 格式資料的標準選擇。quarkus-jdbc-postgresql
: 簡化 JDBC 的使用 PostgreSQL 資料庫。quarkus-smallrye-reactive-messaging
:用於處理消息傳遞的擴展,適合需要整合消息中間件(例如 Kafka、AMQP)的微服務。quarkus-smallrye-opentracing
:為微服務添加分佈式追蹤支持,可以幫助你追踪跨服務的請求流程。quarkus-smallrye-metrics
:提供應用程式的度量指標,適合需要監控微服務運行狀況的場景。在這裡,由於我們的目的是運行一個基本的 Quarkus 專案,因此不需特別選擇擴展,直接生成專案即可。建立後你可以稍微看一下預設它會帶哪些dependencies
enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
:用於強制執行 Quarkus 平台的 BOM(Bill of Materials),確保所有 Quarkus 相關的依賴項都使用相同的版本,以避免版本衝突。(這些值定義在gradle.properties**)**
io.quarkus:quarkus-arc
: 為 Quarkus 應用程序引入了 Arc,它是 Quarkus 的 CDI(Contexts and Dependency Injection)實作。這個依賴項使你能夠在 Quarkus 應用中使用依賴注入、範圍管理和其他 CDI 功能。
io.quarkus:quarkus-rest
: 提供基於 JAX-RS 的 RESTful API 支持
io.quarkus:quarkus-junit5
: 允許你撰寫和執行針對 Quarkus 應用的單元測試,並提供了一些針對 Quarkus 的測試注解和功能。
dependencies {
implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
implementation 'io.quarkus:quarkus-arc'
implementation 'io.quarkus:quarkus-rest'
testImplementation 'io.quarkus:quarkus-junit5'
testImplementation 'io.rest-assured:rest-assured'
}
你可以使用 Gradle 來編譯專案,直接在 IntelliJ 的 Gradle 工具欄中點選「Build」按鈕進行編譯。當看到「Build Success」的提示時,即表示編譯成功。
編譯完後下述視窗就會檢視Build Sucess
建議使用 ./gradlew quarkusDev
指令來運行 Quarkus 應用。在終端機輸入這個指令後,你應該會看到服務成功啟動的訊息:
此訊息表示你的 Quarkus 應用在 JVM 模式下運行,並監聽 http://localhost:8080
。
開啟瀏覽器並輸入 http://localhost:8080
,你將看到 Quarkus 的歡迎頁面。在頁面中,點選「VISIT THE DEV UI」,再點選左側的 API 插頭圖示,即可查看已建立的 RESTful API 列表。
可以點選VISIT THE DEV UI,接著點選左邊插頭的Endpoint,即可看到RESTful API List,
點下去就會看到分頁打hello API
雖然 Quarkus 可以以 GraalVM 的原生映像方式運行,但目前應用還在 JVM 模式下運行。在後續章節中,我們將探討如何使用 GraalVM 來提升啟動速度和減少記憶體佔用。
2024-08-31 19:33:11,671 INFO [io.quarkus] (Quarkus Main Thread) hello-quarkus 1.0-SNAPSHOT on JVM (powered by Quarkus 3.14.1) started in 2.663s. Listening on: http://localhost:8080
Code.quarkus.io 是 Quarkus 官方提供的一個快速生成 Quarkus 專案的網站。它主要的目的是讓開發者能夠迅速開始一個新的 Quarkus 應用程式,無需手動設置環境或依賴項。我覺得某個層面來說,對初學者還算友善。
主要功能有
Group
、Artifact
和選擇構建工具(如 Maven 或 Gradle),來定義專案的基本結構。以上設置完後,開發者可以一鍵生成專案,並下載一個打包好的 .zip
文件。下載後,專案可以直接在本地解壓並開發。另外也可以直接push到github repository。
以下是他的操作介面,
Group、Artifact 和 Build Tool
groupId
,通常代表組織名稱或應用的命名空間,圖中是 org.acme
。artifactId
,在這裡為 code-with-quarkus
。Extensions Preset
允許使用者從已配置好模板,直接快速生成專案
如果你不想用模板,可自行展開 View the full list of available extensions,以下是截圖中部分擴展的提出幾項做簡單介紹
這些Extensions允許開發者根據需要靈活選擇適合的工具來處理各種 Web 請求、數據格式等等,從而打造功能強大且靈活的 Quarkus 應用程式。
總結來說,Quarkus 提供了多種方便開發者快速入門的工具與方式,無論是使用 IntelliJ IDEA、Quarkus CLI 或 Code.quarkus.io,都能讓你迅速建立並運行一個 Quarkus 專案。此外,Quarkus 還提供了強大的Extensions,無論你是在本地開發還是計劃部署到生產環境,都能夠在短時間內完成設定。