Quarkus和MongoDB微服務簡單案例原始碼

banq發表於2021-10-12

這篇文章它介紹瞭如何使用 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

相關文章