[[BeanIntegration-BeanIntegration]]
Bean Integration
~~~~~~~~~~~~~~~~

Camel supports the integration of beans and POJOs in a number of ways

[[BeanIntegration-Annotations]]
Annotations
^^^^^^^^^^^

If a bean is defined in Spring XML or scanned using
the Spring component scanning mechanism and a *<camelContext>* is used
or a `CamelBeanPostProcessor` then we process a number of Camel
annotations to do various things such as injecting resources or
producing, consuming or routing messages.

The following annotations is supported and inject by Camel's
`CamelBeanPostProcessor`

[width="100%",cols="10%,90%",options="header",]
|=======================================================================
|Annotation |Description

|`@EndpointInject` |To inject an endpoint, see more details at link:pojo-producing.html[POJO
Producing].

|`@BeanInject` |*Camel 2.13:* To inject a bean obtained from the
Registry. See link:bean-injection.html[Bean
Injection].

|`@PropertyInject` |*Camel 2.12:* To inject a value using
property placeholder.

|`@Produce` |To inject a producer to send message to an endpoint. See
POJO Producing.

|`@Consume` |To inject a consumer on a method. See link:pojo-consuming.html[POJO
Consuming].
|=======================================================================

See more details at:

* POJO Consuming to consume and possibly route
messages from Camel
* POJO Producing to make it easy to produce
camel messages from your POJOs
* DynamicRouter Annotation for
creating a Dynamic Router from a POJO method
* RecipientList Annotation for
creating a Recipient List from a POJO method
* RoutingSlip Annotation for creating
a Routing Slip for a POJO method
* Bean Injection to inject Camel related
resources into your POJOs
* link:using-exchange-pattern-annotations.html[Using Exchange Pattern
Annotations] describes how the pattern annotations can be used to change
the behaviour of method invocations with
Spring Remoting or
POJO Producing

*Example*

See the POJO Messaging Example for how
to use the annotations for routing and messaging.

[[BeanIntegration-BeanComponent]]
Bean Component
^^^^^^^^^^^^^^

The <<bean-component,Bean>> component allows one to invoke a particular
method. Alternately the <<bean-component,Bean>> component supports the
creation of a proxy via
http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/bean/ProxyHelper.html[ProxyHelper]
to a Java interface; which the implementation just sends a message
containing a
http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/bean/BeanInvocation.html[BeanInvocation]
to some Camel endpoint.

[[BeanIntegration-SpringRemoting]]
Spring Remoting
^^^^^^^^^^^^^^^

We support a Spring Remoting provider which
uses Camel as the underlying transport mechanism. The nice thing about
this approach is we can use any of the Camel transport
Components to communicate between beans. It also
means we can use Content Based Router
and the other link:enterprise-integration-patterns.html[Enterprise
Integration Patterns] in between the beans; in particular we can use
Message Translator to be able to convert
what the on-the-wire messages look like in addition to adding various
headers and so forth.

*Bean binding*

Whenever Camel invokes a bean method via one of the above methods
(<<bean-component,Bean>> component, link:spring-remoting.html[Spring
Remoting] or POJO Consuming) then the
*Bean Binding* mechanism is used to figure out
what method to use (if it is not explicit) and how to bind the
Message to the parameters possibly using the
Parameter Binding Annotations
or using a method name option.
