検索

60.8. Camel Bean の統合

download PDF

60.8.1. Camel アノテーション

Camel Bean 統合 の一部として、Camel には、Camel CDI によってシームレスにサポートされる一連の アノテーション が付属しています。したがって、CDI Bean でこれらのアノテーションのいずれかを使用できます。

 Camel アノテーションCDI 相当

設定プロパティー

@PropertyInject("key")
String value;

DeltaSpike 設定メカニズム を使用する場合:

@Inject
@ConfigProperty(name = "key")
String value;

詳細については、設定プロパティーを参照してください。

プロデューサーテンプレートインジェクション (デフォルトの Camel コンテキスト)

@Produce(uri = "mock:outbound")
ProducerTemplate producer;

@Produce(uri = "mock:outbound")
FluentProducerTemplate producer;
@Inject
@Uri("direct:outbound")
ProducerTemplate producer;

@Produce(uri = "direct:outbound")
FluentProducerTemplate producer;

エンドポイントインジェクション (デフォルトの Camel コンテキスト)

@EndpointInject(uri = "direct:inbound")
Endpoint endpoint;
@Inject
@Uri("direct:inbound")
Endpoint endpoint;

エンドポイントインジェクション (名前による Camel コンテキスト)

@EndpointInject(uri = "direct:inbound",
                context = "foo")
Endpoint contextEndpoint;
@Inject
@ContextName("foo")
@Uri("direct:inbound")
Endpoint contextEndpoint;

Bean インジェクション (種類別)

@BeanInject
MyBean bean;
@Inject
MyBean bean;

Bean インジェクション (名前別)

@BeanInject("foo")
MyBean bean;
@Inject
@Named("foo")
MyBean bean;

POJO consuming

@Consume(uri = "seda:inbound")
void consume(@Body String body) {
    //...
}
 

60.8.2. Bean コンポーネント

Java Camel DSL などを使用して、Camel DSL から、タイプまたは名前で CDI Bean を参照できます。

class MyBean {
    //...
}

from("direct:inbound").bean(MyBean.class);

または、Java DSL から名前で CDI Bean を検索するには:

@Named("foo")
class MyNamedBean {
    //...
}

from("direct:inbound").bean("foo");

60.8.3. エンドポイント URI からの Bean の参照

URI 構文を使用してエンドポイントを設定する場合、# 表記を使用してレジストリー内の Bean を参照できます。URI パラメーター値が # 記号で始まる場合、Camel CDI は指定されたタイプの Bean を名前で検索します。以下に例を示します。

from("jms:queue:{{destination}}?transacted=true&transactionManager=#jtaTransactionManager").to("...");

次の CDI Bean を @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;
}
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.