1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/silentbalanceyh-vertx-zero

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
zero-ebs.md 2.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 04:28 85b9559

Версия только с Event Bus

В большинстве случаев отправитель не нужен. Zero также поддерживает другую версию выборки для прямой передачи данных в Event Bus.

1. Исходный код

1.1. Только интерфейс отправителя

В этой версии запрос будет проходить на основе интерфейса и напрямую передавать данные рабочему. Обратите внимание, что этот класс является интерфейсом, а не классом.

import io.vertx.core.json.JsonObject;
import io.vertx.up.annotations.Address;
import io.vertx.up.annotations.EndPoint;

import jakarta.ws.rs.BodyParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;

@EndPoint
@Path("/cronus")
public interface SpeakAddrApi {

    @Path("/direct")
    @POST
    @Address("ZUES://DIRECT")
    JsonObject speak(@BodyParam JsonObject data);
}

1.2. Потребитель

import io.vertx.core.eventbus.Message;
import io.vertx.core.json.JsonObject;
import io.vertx.up.annotations.Address;
import io.vertx.up.annotations.Queue;
import io.vertx.up.commune.Envelop;

@Queue
public class SpeakAddrWorker {

    @Address("ZUES://DIRECT")
    public void direct(final Message<Envelop> data) {
        final JsonObject replied = (data.body().data(0, JsonObject.class));
        data.reply(Envelop.success(replied));
    }
}

Эта версия пропускает логический агент без кода и напрямую передаёт данные рабочему.

1.3. Отображение аргументов

Обратите внимание на метод данных Envelop в приведённом выше коде:

public <T> T data(final Integer argIndex, final Class<T> clazz)

Фактически сообщение будет передавать параметры из определения интерфейса по индексу как ключ JsonObject для извлечения данных из EventBus. Здесь можно применить все типы правил, вы также можете использовать тип POJO в качестве второго аргумента.

1.4. Ограничения

    1. Проверка Hibernate завершится неудачно, поскольку нет класса реализации, но можно использовать расширенную проверку @Codex.
    1. Метод рабочего должен быть спецификацией в соответствии с определением zero.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/silentbalanceyh-vertx-zero.git
git@api.gitlife.ru:oschina-mirror/silentbalanceyh-vertx-zero.git
oschina-mirror
silentbalanceyh-vertx-zero
silentbalanceyh-vertx-zero
master