Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

We support the injection of various resources using @EndpointInject or @BeanInject. This can be used to inject

Using @BeanInject

From Camel 2.13 onwards you can inject beans (obtained from the Registry) into your beans such as RouteBuilder classes.

For example to inject a bean named foo, you can enlist the bean in the Registry such as in a Spring XML file:

Code Block
xml
xml

<bean id="foo" class="com.foo.MyFooBean"/>

And then in a Java RouteBuilder class, you can inject the bean using @BeanInject as shown below:

Code Block

public class MyRouteBuilder extends RouteBuilder {

   @BeanInject("foo")
   MyFooBean foo;

   public void configure() throws Exception {
     ..
   }
}

If you omit the name, then Camel does a lookup by type, and injects the bean if there is exactly only one bean of that type enlisted in the Registry.

Code Block

   @BeanInject
   MyFooBean foo;