Hibernate-reactive: Пример настройки реактивной стадии спящего режима Vert.X

Созданный на 7 июн. 2021  ·  10Комментарии  ·  Источник: hibernate/hibernate-reactive

Привет, ребята, не могли бы вы рассказать мне, где я могу получить пример настройки Vertx Web с реактивным спящим режимом с использованием режима Stage?

Я просто нашел этот пример, использующий Mutiny:
https://how-to.vertx.io/hibernate-reactive-howto/

Заранее спасибо.

question

Все 10 Комментарий

Я не думаю, что на данный момент есть один.

Что касается фабрики сеансов Hibernate Reactive, вы можете получить тот, который использует режим Stage через:

  emf = Persistence
    .createEntityManagerFactory("pg-demo", props)
    .unwrap(Stage.SessionFactory.class);

Затем вы можете преобразовать Uni в CompletionStage (и наоборот) с помощью:

Uni uni = ...
CompletionStage stage = uni.subscribeAsCompletionStage();
Uni uni =Uni.createFrom().completionStage( stage );

Из любопытства, почему вы хотите использовать режим Stage?

Спасибо за объяснение,
раньше я думал об использовании stage mode и vertx для уменьшения сторонних зависимостей,
к тому же я не знаком с мятежом, и у меня были некоторые сомнения по поводу использования этой библиотеки. Стабильно ли оно и есть ли у него хорошее сообщество для обсуждения?

Прошу прощения за открытие незначительного дела, в следующий раз я воспользуюсь форумом.

Да, Mutiny довольно стабилен. и они обычно довольно быстро отвечают на вопрос. Вы можете найти веб-сайт со всеми подробностями о сообществе здесь: https://smallrye.io/smallrye-mutiny/

В любом случае, нет ничего плохого в использовании CompletionStage API, я просто считаю, что Mutiny помогает писать более чистый код.
На этой неделе я попытаюсь создать пример, который использует CompletionStage, но пока вы можете попытаться преобразовать его, используя эту таблицу в документации Hibernate Reactive: http://hibernate.org/reactive/documentation/1.0/reference/html_single / # _ apis_for_chaining_reactive_operations

Не извиняюсь, отзывы нам нравятся :-)

Я не уверен, что есть действительно острая необходимость в отдельном примере, показывающем Vert.x и CompletionStage , просто потому, что примеры были бы такими похожими. И я согласен с тем, что Mutiny - гораздо более удобный API для использования с HR. Но я думаю, что если вы захотите это сделать, это, вероятно, не так уж и много. Не думаю, что буду беспокоиться.

Я создал этот псевдоним JBang для примера, который не использует Mutiny: https://github.com/DavideD/jbang-rep/blob/main/StageVerticle.java

После того, как вы установили JBang, вы можете запустить его с помощью:

jbang stage-verticle@DavideD/jbang-rep

И вы можете открыть его в своем ide (например, IDEA) с помощью:

jbang edit --open  stage-verticle@DavideD/jbang-rep

(Даже если вы не знакомы с JBang, если вы скопируете этот класс в новый проект и добавите зависимости вверху, он будет работать).

В любом случае он должен дать вам представление о том, как использовать Future и CompletionStage.
Но я по-прежнему считаю, что вам стоит попробовать Mutiny.

Ваше здоровье.

Я закрываю этот вопрос, но дайте мне знать, если у вас возникнут дополнительные вопросы.

Благодаря @DavideD и @gavinking я прочитал и попробовал приведенный вами пример, и он работает. Конечно, я попробую использовать Mutiny, я только что обнаружил, что он предоставляет некоторые возможности для разработчиков, чем Stage API, я думаю. Просто иногда я должен быть связан политикой, чтобы выбрать Стадию или Мятеж.

С Уважением

@ arifpratama398 Я заметил пару ошибок в этом примере. Я не выполнил все обещания и дважды создавал фабрику. Я его обновил. Если вы используете jbang, обязательно запустите его с jbang --fresh stage-verticle@DavideD/jbang-rep .

Кроме того, исходный пример никогда не закрывает фабрику, но я добавил ее в метод остановки.
@gavinking Должно быть закрытие фабрики, когда вертикаль остановлена, не так ли?

Наверное.

Я полагаю, что в данном случае это не имеет никакого значения, но это то, что нужно иметь в виду для реальных приложений.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги