This is confusing:
“You can use @Handler when you have a POJO with N+ methods….such as
when you send a message to the bean endpoint, or use bean(MyBeanClass.class) in
the route”
This is effectively doing the same thing as a bean with @Consume annotation,
no? Why are there seemingly two ways of doing the same thing? In the context of
a Spring Boot/Camel/ActiveMQ what am I missing?
Any info is appreciated!
> On Jul 7, 2019, at 10:05 AM, Claus Ibsen <[email protected]> wrote:
>
> Hi
>
> @Handler is not related to ConsumerTemplate.
>
> You can use @Handler when you have a POJO with N+ methods, and you
> just want to tell Camel that it should always use this method when
> Camel is using this bean, such as when you send a message to the bean
> endpoint, or use bean(MyBeanClass.class) in the route etc.
>
> On the other hand @Consume is an annotation you can use on a bean to
> let Camel use the method as consumer, and this is more related to
> consumer template. Then you can do POJO messaging, eg if you use
> Spring Boot you can do this on beans you let Spring Boot manage.
>
> https://github.com/apache/camel/tree/master/examples/camel-example-pojo-messaging
>
> <https://github.com/apache/camel/tree/master/examples/camel-example-pojo-messaging>
>
> On Sun, Jul 7, 2019 at 4:48 PM Richard Flores <[email protected]
> <mailto:[email protected]>> wrote:
>>
>> Hi,
>>
>> I’m new to Camel, trying to get my head wrapped around conventions and
>> usages and get some samples going. I’m trying to understand what is the
>> difference between Consumer Templates and the @Handler Annotation.
>>
>> According to http://camel.apache.org/manual/camel-manual-2.3.0.html
>> <http://camel.apache.org/manual/camel-manual-2.3.0.html>
>> <http://camel.apache.org/manual/camel-manual-2.3.0.html
>> <http://camel.apache.org/manual/camel-manual-2.3.0.html>>
>>
>> @Handler
>>
>> Available as of Camel 2.0
>>
>> You can mark a method in your bean with the @Handler annotation to
>> indicate that this method should be used for Bean Binding.
>> This has the advantage as you do not have to specify the method name
>> in the Camel route. And thus you do not run into problems when you rename
>> the method name using an IDE that don't find all references.
>>
>> public class Bar {
>>
>> @Handler
>> public String doSomething(Stringbody) {
>> // process the in body and return whatever you want
>> return "Bye World";
>> }
>>
>> Given a bean with configured routes and a producer template, I get the
>> impression that you could use a bean with a method annotated with @Handler
>> in lieu of a bean with a regular method that uses a consumer template.
>>
>> Is this correct? What am I missing?
>>
>> Also, I’m planning on using Spring Boot with Spring for Apache ActiveMQ and
>> Apache Camel, do the producer/consumer, handler concepts change?
>>
>> Thanks!
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com <http://davsclaus.com/> @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
> <https://www.manning.com/ibsen2>