Краткий ответ: только тогда, когда вы обязаны .
Когда это возможно, предпочитают простые Java Beans с привязкой к компонентам .Вы можете автоматически добавить все, что вам нужно, из сообщения в вашем методе Бина.
Например, если вы вызовете следующий метод из вашего маршрута с помощью команды bean
, вы получите тело сообщения в виде String и весь Exchange введен.
public String doSomething(String body, Exchange exchange)
Это своего рода волшебство: первый аргумент по умолчанию является телом, второй оценивается на основе типа Exchange
.
Вы можете сделать вещи более прозрачными, если выиспользуйте аннотации привязки параметров :
public String doSomething(@Body String body, @Header("JMSCorrelationID"))
Если вы начнете реализовывать такие bean-компоненты, как это, вы почти никогда не будете реализовывать Processor
снова.Бобы гораздо проще тестировать и они более переносимы (их можно использовать и в другом, не верблюжьем контексте).
Тем не менее, есть или были некоторые места, где необходима реализация Processor
, но эти случаи все больше и больше исключались.Я понятия не имею, существуют ли некоторые из них, но, по крайней мере, я давно не реализовывал Processor
.