В apache camel, какой из них - лучший способ передать значения из обменного процессора другому (и почему):
- сохранение в заголовках обмена
- с помощью метода
setProperty
при построении маршрута. - другой способ..
В apache camel, какой из них - лучший способ передать значения из обменного процессора другому (и почему):
setProperty
при построении маршрута.Свойства и заголовки практически одинаковы. Однако заголовки преобразуются в/из заголовков конкретных протоколов на определенные компоненты, такие как Jms. Итак,
Одно из различий, не упомянутых Бен и Петтером, заключается в том, что свойства безопасно сохраняются в течение всего времени обработки сообщения в Camel. Напротив, заголовки являются частью протокола сообщений и не могут быть распространены во время маршрутизации. Например, JMS имеет ограничения, которые вы можете хранить в качестве заголовков и т.д.
Вы можете прочитать свободную главу 1 книги "Верблюд в действии", поскольку она охватывает концепции Camel с Exchange, Message и т.д.
Exchange передается между процессорами. Он содержит свойства, сообщение IN и дополнительное сообщение OUT. Каждый из них способен хранить данные объекта, но в целом:
Тем не менее, это действительно зависит от компонента, который называется вашим процессором. Большинство из них имеют некоторые заголовки и/или значения тела, которые необходимы для использования конечной точки и т.д. Для получения подробной информации см. Конкретную страницу .
Кроме того, Exchange/Message более подробно описаны на этих страницах:
http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.html
http://fusesource.com/docs/router/2.8/prog_guide/MsgFormats-Exchanges.html