Начало работы с Vert.x
В этом руководстве вы узнаете, как начать работу с новым проектом Vert.x Web.
Перед началом работы вам необходимо:
- JDK 11 или выше
- Текстовый редактор или IDE
- Maven 3 или выше
- curl или HTTPie или браузер для выполнения HTTP-запросов
1Настройка
Чтобы создать новый проект, перейдите на start.vertx.io.
Выберите желаемую версию Vert.x, язык Java, Maven в качестве инструмента сборки и укажите идентификатор группы и артефакта. Затем добавьте зависимость 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-сервер. Вы измените его, чтобы приветствовать пользователя, выполнившего запросы к серверу. Измените код следующим образом:
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-запросов к определённым обработчикам запросов) и запускает HTTP-сервер на порту 8888. При каждом запросе он возвращает 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
Теперь, когда сервер запущен, попробуйте отправить запрос:
$ http http://localhost: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 http://localhost: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, вот несколько советов, которые помогут вам продвинуться в вашем путешествии:
Вступление
Прочитайте наше краткое введение в реактивное программирование с Eclipse Vert.xДокументация Core
Документация Vert.x Core научит вас писать реактивные приложенияРуководства
Ознакомьтесь с руководствами Vert.x, чтобы получить практическую помощь по конкретным темамРуководства
Подробно изучите Vert.x с помощью наших руководств, охватывающих сложные темы
© 2025 Eclipse Vert.x™Eclipse Vert.x™ is open source and dual-licensed under the Eclipse Public License 2.0 and the Apache License 2.0.Website design by Michel Krämer.
https://vertx.io/docs/3.9.16