Bean Injection
We support the injection of various resources using @EndpointInject
or @BeanInject
. This can be used to inject
-
Endpoint instances which can be used for testing when used with Mock endpoints; see the Testing for an example.
-
ProducerTemplate instances for POJO Producing
-
client side proxies for POJO Producing
Using @BeanInject
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:
<bean id="foo" class="com.foo.MyFooBean"/>
And then in a Java RouteBuilder
class, you can inject the bean using @BeanInject
as shown below:
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.
@BeanInject
MyFooBean foo;