Quarkus和MongoDB微服務簡單案例原始碼
這篇文章它介紹瞭如何使用 MongoDB 互動建立 Quarkus 微服務。本教程的完整程式碼在以下連結中:
quarkus-mongodb-panache-code
Quarkus 是一個強大的企業程式設計堆疊,很有可能席捲市場。可以使用 Java 建立超音速和亞原子應用程式,因此我們可以為 Serverless 建立超快的應用程式。
在雲時代,我們需要速度和輕量級的應用程式,Quarkus 巧妙地使之成為可能。使用 Quarkus 啟動 Java 應用程式,只需不到 500 毫秒。
快速啟動您的 Quarkus 應用程式
為了快速開始使用 Quarkus,我們可以使用以下 URL code.quakus.io並在那裡生成我們的應用程式。
安裝 Docker
對於 MacBook,您可以使用以下連結安裝 Docker:docker-for-mac-install
如果您使用的是 Windows,則可以訪問以下連結:docker-for-windows-install
如果你想要 Docker for Ubuntu,你可以使用以下連結:docker-engine-install-ubuntu
如果您需要為另一個 Linux 發行版安裝 Docker,只需瀏覽官方 Docker 網站。
此外,由於我們將在我們的應用程式中使用 docker-compose,因此有必要安裝 docker-compose。您可以訪問以下連結:docker-compose-install
簡單地說,docker-compose 是一種在一個簡單的命令 docker-compose up 中使用 docker 來啟動你的服務或 docker-compose down 來銷燬它的方法。
我們將使用 docker-compose 代替使用 docker run 來啟動我們需要的服務,這樣我們就不需要建立擴充套件的 docker run 命令。
所需設定
在開始本教程之前,您需要在您的機器上安裝 Java SDK 11 和 Gradle。
起步
Quarkus 擁有一個令人難以置信的平臺,其中包含許多強大的庫,可幫助我們在雲中建立可靠且強大的軟體。在這個平臺上,我們可以輕鬆地以我們想要的方式選擇和建立我們的專案。
轉到以下連結code.quarkus.io,讓我們建立我們的簡單專案。
在“選擇您的擴充套件”部分,我們將向我們的專案新增以下依賴項:
MongoDB with PanacheRESTEasy JSON-BRESTEasy JacksonSmallRye Health
在 Build Tool 選項中,選擇Gradle。
在為我們的專案選擇我們想要的內容後,讓我們點選“生成您的應用程式”。解壓縮專案並將其匯入您最喜歡的 IDE(我的是IntelliJ)。
現在讓我們使用 Docker 來啟動我們的 MongoDB 會話!
現在使用以下資訊在我們的 Quarkus 專案的根目錄中建立docker-compose.yml檔案。
version: '3.7' services: mongodb_container: image: mongo:latest ports: - 27017:27017 volumes: - mongodb_data_container:/data/db volumes: mongodb_data_container: |
然後透過在 Quarkus 專案的根目錄中執行以下命令來啟動 MongoDB 會話:
docker-compose up
構建應用程式程式碼
在下面的程式碼中,我們將:
1 – 配置專案以連線到 MongoDB
2 – 使用我們想要的欄位建立 Knight 模型類,擴充套件 PanacheMongoEntity 類。
3 – 使用自定義搜尋方法(例如 count、orderedByName 和 searchByName)建立我們的資料儲存庫。
4 – 建立 REST 端點以建立、更新、刪除和搜尋 Knights。
一旦我們執行了一個 Docker MongoDB 例項,我們就可以配置我們的 Quarkus 應用程式來連線到它。然後讓我們在以下路徑中建立application.properties檔案:“src/main/resources/”。
在這個檔案中,我們實際上是在設定 MongoDB 主機和資料庫名稱,這應該足以將 Quarkus 與 MongoDB 整合!
# configure the MongoDB client for a single node cluster on localhost quarkus.mongodb.connection-string=mongodb://localhost:27017 # mandatory if you don't specify the name of the database using @MongoEntity quarkus.mongodb.database=knight ... |
使用 Panache,處理資料庫事務真的很容易。我們可以簡單地在屬性檔案中建立我們的資料庫配置,建立我們的 Repository 類.
import io.quarkus.mongodb.panache.PanacheMongoEntity; public class Knight extends PanacheMongoEntity { public String name; public String swordName; public Knight() { } public Knight(String name, String swordName) { this.name = name; this.swordName = swordName; } } |
然後,讓我們建立 Repository 類,該類將擴充套件PanacheMongoRepository負責為我們提供基本的資料庫操作,例如建立、更新、刪除和搜尋元素。
import io.quarkus.mongodb.panache.PanacheMongoRepository; import io.quarkus.panache.common.Sort; import java.util.List; import javax.enterprise.context.ApplicationScoped; @ApplicationScoped public class KnightRepository implements PanacheMongoRepository<Knight>{ public Knight findByName(String name){ return find("name", name).firstResult(); } public List<Knight> findOrderedByName(){ return findAll(Sort.by("name")).list(); } } |
執行您的 Quarkus 應用程式
現在您已經為 Quarkus 應用程式配置了一切,您需要執行您的應用程式。Quarkus 最強大的功能之一是可以在開發模式下執行您的應用程式,這允許我們更改程式碼並檢視實時更改,而無需重新啟動伺服器!
要使用在開發模式下執行Quarkus gradle這個我們可以從專案的根路徑使用以下命令:
./gradlew quarkusDev
相關文章
- 幽默:最簡單的SpringBoot微服務程式碼Spring Boot微服務
- 使用Golang和MongoDB構建微服務GolangMongoDB微服務
- 一個簡單案例的Vue2.0原始碼Vue原始碼
- Spring Boot實現DDD的貨運Cargo微服務案例原始碼Spring BootCargo微服務原始碼
- cmdr 04 - 簡單微服務 (daemon)微服務
- SpringBoot、Kubernetes和Istio微服務網格演示原始碼Spring Boot微服務原始碼
- 微服務是什麼?帶你簡單瞭解微服務微服務
- 簡單介紹Vue之vue.$set()方法原始碼案例Vue原始碼
- MongoDB4 事務 簡單易懂的?MongoDB
- mongodb和hbase的簡單比較MongoDB
- .Net Core 3.1簡單搭建微服務微服務
- Python和JavaScript是雲原生微服務的最佳語言?Quarkus來了! – Javier RamosPythonJavaScript微服務
- goc 學習:原始碼部署和簡單使用Go原始碼
- MongoDB 簡單上手MongoDB
- 微服務技術棧簡單介紹,Eureka和Ribbon的引入和使用微服務
- 基於事件溯源與CDC的事件驅動微服務架構案例原始碼事件微服務架構原始碼
- MediaScanner原始碼簡單分析原始碼
- 2020年總結-用學習過的技術搭建一個簡單的微服務框架 + 原始碼微服務框架原始碼
- 我對微服務架構的簡單理解微服務架構
- 合約跟單系統開發(原始碼案例)丨合約跟單開發原始碼案例部署原始碼
- Kubernetes,Istio和Java MicroProfile微服務雲原生案例 - heidloffJava微服務
- 完整的php微服務案例PHP微服務
- Go+MongoDB的微服務實戰MongoDB微服務
- 微服務生態元件之Spring Cloud OpenFeign詳解和原始碼分析微服務元件SpringCloud原始碼
- 微服務生態元件之Spring Cloud LoadBalancer詳解和原始碼分析微服務元件SpringCloud原始碼
- 單體和微服務幽默新解圖片微服務
- 部署超簡單的 Golong 分散式 WebSocket 微服務Go分散式Web微服務
- 最簡單的微服務部署測試實踐微服務
- storm簡單案例ORM
- C#簡單操作MongoDBC#MongoDB
- MongoDB索引的簡單理解MongoDB索引
- 第 23 期 Drone 簡單介紹和部分原始碼分析原始碼
- 架構之:微服務和單體服務之爭架構微服務
- Java 8 ArrayList 原始碼簡單分析Java原始碼
- debezium官方分散式事務Saga案例原始碼分散式原始碼
- 構建自己的簡單微服務架構(開源)微服務架構
- 簡單實現微服務架構的實踐分享微服務架構
- lzambarda/simple-go-boilerplate:簡單的go微服務模板Go微服務