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