简介
Vert.x 入门
在本指南中,您将学习如何开始一个新的 Vert.x Web 项目。
开始之前,您需要
- JDK 11 或更高版本
- 文本编辑器或 IDE
- Maven 3 或更高版本
- curl、HTTPie 或浏览器来执行 HTTP 请求
1启动项目
要创建新项目,请访问 start.vertx.io。

选择您想使用的 Vert.x 版本,选择 Java 作为语言,Maven 作为构建工具,然后输入您想要的组 ID 和 artifact ID。接着,在“依赖”文本框中输入 Vert.x Web 以将其添加为依赖项。完成后,点击生成项目按钮。将 zip 文件保存到您的计算机上,并解压到您选择的文件夹中。
生成的项目包含
- 配置用于构建和运行您的应用程序的 Maven 构建描述符
pom.xml
- 一个示例 Verticle 和一个使用 JUnit 5 的示例测试
- 用于强制执行代码风格的编辑器配置
- 用于忽略文件的 Git 配置
如果您想立即尝试,可以使用 Maven 或 Gradle 下载此示例项目。
2代码
用您选择的编辑器打开项目,并导航到 src/main/java/com/example/starter/MainVerticle.java
。此源文件包含一个示例 Verticle
(Vert.x 部署单元),它会启动一个 HTTP 服务器。您将修改它,以便向所有向您的服务器发出请求的人问好。请按如下方式更改代码:
Java
Kotlin
package com.example.starter;
import io.vertx.core.Future;
import io.vertx.core.VerticleBase;
import io.vertx.core.MultiMap;
import io.vertx.core.json.JsonObject;
import io.vertx.ext.web.Router;
public class MainVerticle extends VerticleBase {
@Override
public Future<?> start() {
// Create a Router
Router router = Router.router(vertx);
// Mount the handler for all incoming requests at every path and HTTP method
router.route().handler(context -> {
// Get the address of the request
String address = context.request().connection().remoteAddress().toString();
// Get the query parameter "name"
MultiMap queryParams = context.queryParams();
String name = queryParams.contains("name") ? queryParams.get("name") : "unknown";
// Write a json response
context.json(
new JsonObject()
.put("name", name)
.put("address", address)
.put("message", "Hello " + name + " connected from " + address)
);
});
// Create the HTTP server
return vertx.createHttpServer()
// Handle every request using the router
.requestHandler(router)
// Start listening
.listen(8888)
// Print the port on success
.onSuccess(server -> {
System.out.println("HTTP server started on port " + server.actualPort());
})
// Print the problem on failure
.onFailure(throwable -> {
throwable.printStackTrace();
});
}
}
这段代码创建了一个 Vert.x Web 路由器(用于将 HTTP 请求路由到特定请求处理程序的D对象),并在端口 8888
上启动了一个 HTTP 服务器。对于每个请求,它都会返回一个 JSON 对象,其中包含请求的地址、查询参数 name
和一条问候消息。
3运行
要运行代码,请打开终端并导航到您的项目文件夹。按如下方式构建应用程序:
$ mvn package
然后,运行应用程序
$ mvn exec:java
HTTP server started on port 8888
apr 03, 2020 11:49:21 AM io.vertx.core.impl.launcher.commands.VertxIsolatedDeployer
INFO: Succeeded in deploying verticle
现在服务器已启动并运行,尝试发送一个请求:
HTTPie
curl
$ http https://:8888
HTTP/1.1 200 OK
content-length: 115
content-type: application/json; charset=utf-8
{
"address": "0:0:0:0:0:0:0:1:32806",
"message": "Hello unknown connected from 0:0:0:0:0:0:0:1:32806",
"name": "unknown"
}
$ http https://:8888\?name\="Francesco"
HTTP/1.1 200 OK
content-length: 119
content-type: application/json; charset=utf-8
{
"address": "0:0:0:0:0:0:0:1:32822",
"message": "Hello Francesco connected from 0:0:0:0:0:0:0:1:32822",
"name": "Francesco"
}
4更进一步
现在您已经体验了 Vert.x 入门的简单和乐趣,这里有一些指导,可帮助您进一步深入探索: