Я не уверен, сколько людей имели возможность иметь дело с Camel Processors. Так что это мое беспокойство:
Я получаю некоторую информацию и отправляю ее на процессор. Из процессора он вызывает вызов базы данных через службу и вставляет запись. Я использую POJO и устанавливаю значения в моей модели в процессоре через объект обмена. Я вообще не сталкиваюсь с какими-либо проблемами, но процессор не предназначен для установки значений в списке или любой другой структуре. Он должен просто выполнить некоторую обработку объекта обмена и передать его в первую очередь из-за того, что может возникнуть ситуация, когда несколько потоков могут вызывать один и тот же процессор.
Это то, что я хотел бы знать:
Processors
являются одноточечными и поэтому не должны использоваться для хранения состояния любого типа...
некоторые варианты...
хранить информацию о состоянии в свойствах Exchange
или заголовках тела
замените Processor
на Bean
где вы можете управлять областью (прототипом и т.д.),
использовать переменные ThreadLocal
для ссылок, не связанных с потоками