Начало работы с 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Документация по ядру
Документация по ядру Vert.x научит вас написанию реактивных приложенийКак это сделать
Изучите практические руководства 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/