В настоящее время изучая интеграцию с Spring, я хочу получить информацию из базы данных MySQL для использования внутри int:service-activator
или int:splitter
.
К сожалению, может показаться, что большинство примеров и документации основано на идее использования int-jdbc:inbound-channel-adapter
, что само по себе требует опроса. Я не хочу опрашивать базу данных, а получаю конкретные данные на основе полезной нагрузки существующего сообщения, полученного из int:gateway
. Эти данные затем будут использоваться для дальнейшего изменения полезной нагрузки или для помощи в разделении сообщения.
Я попытался использовать int-jdbc:outbound-gateway
, поскольку в описании указано:
... jdbc.JdbcOutboundGateway 'для обновления базы данных в ответ на сообщение в канале запроса и / или для извлечения данных из базы данных ...
Это означает, что его можно использовать только для извлечения данных, а не только для обновления, но, поскольку я его реализую, есть жалоба на то, что требуется как минимум один оператор обновления:
И вот я сейчас сижу с неисправным прототипом, который изначально выглядит так:
Обведенный кружком кусок не функционирует int-jdbc:outbound-gateway
.
Моя конечная цель состоит в том, чтобы, основываясь на полезной нагрузке, поступающей из incomingGateway
(на рисунке выше), извлечь некоторую информацию из базы данных MySQL и использовать эти данные для разделения сообщения в analyzerSplitter
, или чтобы возможно, измените полезную нагрузку, используя int:service-activator
. Затем все это должно быть связано с int-jdbc:message-store
, который, я считаю, может помочь с производительностью. Я не хочу регулярно опрашивать базу данных и не хочу ничего обновлять в базе данных.
При тестировании с использованием опроса int-jdbc:inbound-channel-adapter
я уверен, что мой компонент источника данных настроен правильно и запрос может быть выполнен.
Как мне правильно настроить такое поведение в весенней интеграции?