このコンテンツは選択した言語では利用できません。

15.2. Camel Bean Integration


Camel annotations

As part of the Camel bean integration, Camel comes with a set of annotations that are seamlessly supported by Camel CDI. So you can use any of these annotations in your CDI beans, for example:
Expand
Camel annotation CDI equivalent
Configuration property
@PropertyInject("key")
String value;
Copy to Clipboard Toggle word wrap
@Inject
@ConfigProperty(name = "key")
String value;
Copy to Clipboard Toggle word wrap
See configuration properties for more details.
Producer template injection (default Camel context)
@Produce(uri = "mock:outbound")
ProducerTemplate producer;
Copy to Clipboard Toggle word wrap
@Inject
@Uri("direct:outbound")
ProducerTemplate producer;
Copy to Clipboard Toggle word wrap
Endpoint injection (default Camel context)
@EndpointInject(uri = "direct:inbound")
Endpoint endpoint;
Copy to Clipboard Toggle word wrap
@Inject
@Uri("direct:inbound")
Endpoint endpoint;
Copy to Clipboard Toggle word wrap
Endpoint injection (Camel context by name)
@EndpointInject(uri = "direct:inbound", context = "foo")
Endpoint contextEndpoint;
Copy to Clipboard Toggle word wrap
@Inject
@ContextName("foo")
@Uri("direct:inbound")
Endpoint contextEndpoint;
Copy to Clipboard Toggle word wrap
Bean injection (by type)
@BeanInject
MyBean bean;
Copy to Clipboard Toggle word wrap
@Inject
MyBean bean;
Copy to Clipboard Toggle word wrap
Bean injection (by name)
@BeanInject("foo")
MyBean bean;
Copy to Clipboard Toggle word wrap
@Inject
@Named("foo")
MyBean bean;
Copy to Clipboard Toggle word wrap
POJO consuming
@Consume(uri = "seda:inbound")
void consume(@Body String body) {
    //...
}
Copy to Clipboard Toggle word wrap

Bean component

You can refer to CDI beans, either by type or name, From the Camel DSL, for example with the Java Camel DSL:
class MyBean {
	//...
}
 
from("direct:inbound").bean(MyBean.class);
Copy to Clipboard Toggle word wrap
Or to lookup a CDI bean by name from the Java DSL:
@Named("foo")
class MyNamedBean {
	//...
}
 
from("direct:inbound").bean("foo");
Copy to Clipboard Toggle word wrap

Referring beans from Endpoint URIs

When configuring endpoints using the URI syntax you can refer to beans in the Registry using the # notation. If the URI parameter value starts with a # sign then Camel CDI will lookup for a bean of the given type by name, for example:
from("jms:queue:{{destination}}?transacted=true&transactionManager=#jtaTransactionManager").to("...");
Copy to Clipboard Toggle word wrap
Having the following CDI bean qualified with @Named("jtaTransactionManager"):
@Produces
@Named("jtaTransactionManager")
PlatformTransactionManager createTransactionManager(TransactionManager transactionManager, UserTransaction userTransaction) {
    JtaTransactionManager jtaTransactionManager = new JtaTransactionManager();
    jtaTransactionManager.setUserTransaction(userTransaction);
    jtaTransactionManager.setTransactionManager(transactionManager);
    jtaTransactionManager.afterPropertiesSet();
    return jtaTransactionManager;
}
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat