Spring Cloud Stream: Как указать обработчик одного сообщения для набора привязок? - PullRequest
0 голосов
/ 07 февраля 2019

Spring Cloud Stream версия 1.3.3

Мне интересно, как подключить один обработчик сообщений для набора привязок?Для каждой привязки у меня почти одинаковая логика:

...
    @StreamListener("topic_1")
    void handleCouponCollectedMessage(FirstEventType event) {
        eventsSet.add(event);
    }

    @StreamListener("topic_2")
    void handleProfileUpdateMessage(SecondEventType event) {
        eventsSet.add(event);
    }
...

В моем проекте таких обработчиков будет гораздо больше.Поэтому я пытаюсь переместить настройки, связанные с привязками, в application.propetions:

spring.cloud.stream.bindings.topic_1.destination=topic_1
spring.cloud.stream.bindings.topic_1.content-type=${TOPIC_ONE_CONTENT_TYPE}

Единственная проблема с этим подходом состоит в том, что мне нужно как-то назначить (в свойствах или каком-то общем методе).) один обработчик с общей логикой eventsSet.add(event) для каждой вышеупомянутой привязки.

Поддерживает ли Cloud Stream такую ​​функцию, и если да, может быть, кто-то может поделиться примером?

1 Ответ

0 голосов
/ 07 февраля 2019

Ну, есть несколько вещей, которые вы можете сделать.Во-первых, вы можете указать несколько имен получателей для привязки (разделенных комой), по сути, соединяя несколько получателей с одним получателем (например, StreamListener).

 spring.cloud.stream.bindings.topic_1.destination=topic_1, topic_2. . . .

Вы также можете пойти по маршруту Spring Integration bridge

...