検索

60.4. Camel コンテキスト設定

download PDF

デフォルトの CamelContext Bean の名前を変更するだけの場合は、Camel CDI によって提供される @ContextName 修飾子を使用できます。

@ContextName("camel-context")
class MyRouteBean extends RouteBuilder {

    @Override
    public void configure() {
        from("jms:invoices").to("file:/invoices");
    }
}

それ以外の場合で、さらにカスタマイズが必要な場合は、任意の CamelContext クラスを使用してカスタム Camel コンテキスト Bean を宣言できます。次に、@PostConstruct および @PreDestroy ライフサイクルコールバックを実行して、カスタマイズを行うことができます。以下に例を示します。

@ApplicationScoped
class CustomCamelContext extends DefaultCamelContext {

    @PostConstruct
    void customize() {
        // Set the Camel context name
        setName("custom");
        // Disable JMX
        disableJMX();
    }

    @PreDestroy
    void cleanUp() {
        // ...
    }
}

Producer メソッドと disposer メソッドを使用して、Camel コンテキスト Bean をカスタマイズすることもできます。以下に例を示します。

class CamelContextFactory {

    @Produces
    @ApplicationScoped
    CamelContext customize() {
        DefaultCamelContext context = new DefaultCamelContext();
        context.setName("custom");
        return context;
    }

    void cleanUp(@Disposes CamelContext context) {
        // ...
    }
}

同様に、producer フィールド を使用できます。以下に例を示します。

@Produces
@ApplicationScoped
CamelContext context = new CustomCamelContext();

class CustomCamelContext extends DefaultCamelContext {

    CustomCamelContext() {
        setName("custom");
    }
}

このパターンは、たとえば、コンテナーが setAutoStartup メソッドを呼び出して初期化するときに Camel コンテキストルートが自動的に開始されることを回避するために使用できます。

@ApplicationScoped
class ManualStartupCamelContext extends DefaultCamelContext {

    @PostConstruct
    void manual() {
        setAutoStartup(false);
    }
}
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.