WedX - журнал о программировании и компьютерных науках

@Router в Spring Интеграция с аннотациями (запрос / ответ)

Не могли бы вы привести какой-либо пример маршрутизации сообщений в Spring Integration? Фильтр по сообщению полезной нагрузки, заголовку или чему-то вроде следующего:

<int:payload-type-router input-channel="routingChannel">
<int:mapping type="java.lang.String"  channel="channel1" />
<int:mapping type="java.lang.Integer" channel="channel2" />
</int:payload-type-router>

Как работает ответ? То есть, если я пришлю:

канал -> маршрутизатор -> трансформатор -> шлюз

Просто, но я ищу что-то похожее на этот пример:

<int:router input-channel="inChannel" expression="payload.paymentType">
<int:mapping value="CASH" channel="cashPaymentChannel"/>
<int:mapping value="CREDIT" channel="authorizePaymentChannel"/>
<int:mapping value="DEBIT" channel="authorizePaymentChannel"/>
</int:router>

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


Ответы:


1

@Router методы просто возвращают каналы или имена каналов, на которые будет направлено сообщение.

@Router(inputChannel="routingChannel")
public String route(Object payload) {
    if (payload instanceof String() {
        return "channel1";
    }
    ...
}

Что касается вашего второго вопроса, вам нужно показать больше вашего потока; что такое "апстрим" channel?

Вы можете опустить reply-channel на шлюзе (или опустить output-channel для других типов конечных потребителей, производящих ответ), и ответ будет отправлен на канал, который находится в заголовке reply-channel сообщения; компоненты инфраструктуры, которые запускают сценарии запроса / ответа (входящие шлюзы, шлюзы обмена сообщениями, sendAndReceive методы в MessagingTemplate) автоматически настраивают этот заголовок, так что вам нечего делать; это просто работает.

15.12.2014
  • Спасибо, Гэри. Я пытался понять, как работает ответ, но он просто работает и идеально подходит для моей ситуации. Что касается моего потока, я просто отправляю коллекцию типов. Предлагаемая вами полезная нагрузка может сработать для моего сценария. 15.12.2014
  • Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]