Apache Camel: процессоры и бины служат одной и той же цели? - PullRequest
35 голосов
/ 19 мая 2011

Кажется, что оба служат одной и той же цели. Есть ли какая-то разница, которая делает одно полезным в определенных ситуациях, а не другое?

Ответы [ 2 ]

28 голосов
/ 20 мая 2011

На практике они очень похожи, но Процессор более ограничен, чем Бин.Я обычно использую Процессор для простых случаев использования, которые просто взаимодействуют с Exchange.Кроме того, встроенные процессоры являются отличным способом взаимодействия без необходимости создания отдельного класса.

Бины обеспечивают большую гибкость и также поддерживают настоящий подход POJO.Это позволяет вам более легко интегрироваться с существующими API-интерфейсами (просто нужно преобразовать входы / выходы в соответствие и т. Д.).

Бины также предоставляют отличные функции / гибкость в отношении маршрутизации Camel / интеграции EIP, включая ...

11 голосов
/ 24 июня 2011

Все сводится к вопросу предпочтений, я бы сказал.Я обычно выбираю подход POJO и поэтому начал использовать bean-компоненты для своей обработки, но со временем я постепенно перешел на использование процессоров.

Я чувствовал боль в следующих случаях:

  • Методы bean с более чем одним параметром
  • Попытка получить данные из параметров обмена / заголовков сообщений

Я знаю, что Camel 2.8 устраняет некоторые трудностииз этих случаев, разрешив аннотации в вашем bean-компоненте , которые помогут Camel в том, как вызывать методы вашего bean-компонента.Я не хотел идти по этому пути - чувствовал себя неправильно, чтобы помещать аннотации Camel в bean-компонент, который не должен заботиться о том, что он вызывается Camel.

В конце мы создали без комментариев, клиент-боб-агностик и очень тонкий процессор, который извлекает все, что ему нужно, из верблюда и передает его этому бобу.

Только мои 2 цента - маршрут боба действительно неплохой - он справится с работой простоа также (особенно в 2.8)

РЕДАКТИРОВАТЬ

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...