59.11. Camel XML 設定のインポート


Camel 2.18 から利用可能

CDI はタイプセーフな依存性注入メカニズムを優先しますが、既存の Camel XML 設定ファイルを Camel CDI アプリケーションに再利用すると便利な場合があります。 他の使用例では、Camel XML DSL に依存してその Camel コンテキストを設定すると便利な場合があります。

Camel CDI によって提供される @ImportResource アノテーションを任意の CDI Bean で使用できます。Camel CDI は、指定されたロケーションに Camel XML 設定を自動的にロードします。

@ImportResource("camel-context.xml")
class MyBean {
}
Copy to Clipboard Toggle word wrap

Camel CDI は、クラスパスから指定されたロケーションにリソースをロードします (他のプロトコルが将来追加される可能性があります)。

インポートされたリソースのすべての CamelContext 要素とその他の Camel プリミティブは、コンテナーのブートストラップ中に CDI Bean として自動的にデプロイされるため、Camel CDI によって提供される自動設定の恩恵を受け、実行時に注入できるようになります。そのような要素に明示的な id 属性が設定されている場合、対応する CDI Bean は @Named 修飾子で修飾されます。たとえば、次の Camel XML 設定が与えられます。

<camelContext id="foo">
    <endpoint id="bar" uri="seda:inbound">
        <property key="queue" value="#queue"/>
        <property key="concurrentConsumers" value="10"/>
    </endpoint>
<camelContext/>
Copy to Clipboard Toggle word wrap

対応する CDI Bean が自動的にデプロイされ、注入することができます。

@Inject
@ContextName("foo")
CamelContext context;

@Inject
@Named("bar")
Endpoint endpoint;
Copy to Clipboard Toggle word wrap

CamelContext Bean は、@Named 修飾子と @ContextName 修飾子の両方で自動的に修飾されることに注意してください。インポートされた CamelContext 要素に id 属性がない場合、対応する Bean は組み込みの @Default 修飾子でデプロイされます。

逆に、アプリケーションにデプロイされた CDI Bean は、通常は ref 属性を使用して、Camel XML 設定から参照できます。たとえば、次の Bean が宣言されているとします。

@Produces
@Named("baz")
Processor processor = exchange -> exchange.getIn().setHeader("qux", "quux");
Copy to Clipboard Toggle word wrap

その Bean への参照は、インポートされた Camel XML 設定で宣言できます。

<camelContext id="foo">
    <route>
        <from uri="..."/>
        <process ref="baz"/>
    </route>
<camelContext/>
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat