У меня есть созданное мной приложение, которое я реорганизую, чтобы лучше использовать Spring Integration. Приложение обрабатывает содержимое файлов.
Проблема (как я это вижу) в том, что моя текущая реализация передает Files
вместо Messages
, то есть Spring Integration _ 3_.
Чтобы избежать дальнейшего развертывания моего собственного кода, который я затем должен поддерживать позже, мне интересно, есть ли рекомендуемая структура для создания сообщений в Spring Integration. Интересно, есть ли какая-то рекомендуемая комбинация channel
с чем-то вроде MessageBuilder
, которую я должен использовать.
Процесс / Код (в конечном итоге)
У меня еще нет кода для его настройки, но я хотел бы получить следующие компоненты / процессы:
- Получите файл, удалите верхний и нижний колонтитулы файла, возьмите каждую строку и преобразуйте ее в
Message<String>
(похоже, на самом деле это будетSplitter
), который я отправляю ... - Канал / конечная точка отправляет сообщение маршрутизатору
- Маршрутизатор обнаруживает строку формата в полезной нагрузке и направляет на соответствующий канал аналогично Order Маршрутизатор здесь ...
Выбранный канал затем создает соответствующий тип сообщения, особенно типизированные сообщения. Например, у меня есть следующий конструктор для создания сообщения ...
открытый класс ShippedBoxMessageBuilder реализует CustomMessageBuilder {
@Override public Message buildMessage (ввод строки) {ShippedBox shippedBox = (ShippedBox) ShippedBoxFactory.manufactureShippedFile (ввод); вернуть MessageBuilder.withPayload (shippedBox) .build (); } ...
Сообщение направляется по типу в соответствующий канал обработки.
Мое предполагаемое решение похоже на то, что я его усложнил. Однако я целенаправленно разделил две задачи: 1) разбить файл на несколько строк Messages<String>
и 2) преобразовать Messages<String>
в Messages<someType>
. Из-за этого я думаю, что мне нужен дополнительный маршрутизатор / построитель сообщений для второй задачи.