第3章 Red Hat build of Apache Camel for Spring Boot のスタートガイド


このガイドでは、Red Hat build of Apache Camel for Spring Boot を紹介し、Red Hat build of Apache Camel for Spring Boot を使用してアプリケーションの構築を開始する方法を示します。

3.1. Red Hat build of Apache Camel for Spring Boot のスターター

Spring Boot の Camel サポートは、Camel の自動設定と多くの Camel コンポーネント のスターターを提供します。Camel コンテキストの独自の自動設定は、Spring コンテキストで使用可能な Camel ルートを自動検出し、主要な Camel ユーティリティー (producer テンプレート、コンシューマーテンプレート、型コンバーターなど) を Bean として登録します。

注記

Maven アーキタイプを使用して Camel for Spring Boot アプリケーションを生成する方法は、Maven を使用した Spring Boot アプリケーション用の Camel 生成 を参照してください。

まず、Camel Spring Boot BOM を Maven pom.xml ファイルに追加する必要があります。

<dependencyManagement>

    <dependencies>
        <!-- Camel BOM -->
        <dependency>
            <groupId>com.redhat.camel.springboot.platform</groupId>
            <artifactId>camel-spring-boot-bom</artifactId>
            <version>4.10.7.redhat-00013</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!-- ... other BOMs or dependencies ... -->
    </dependencies>

</dependencyManagement>
Copy to Clipboard Toggle word wrap

camel-spring-boot-bom は、Camel Spring Boot スターター JAR のリストを含む基本的な BOM です。

次に、Camel Spring Boot スターター を追加して Camel Context を起動します。

    <dependencies>
        <!-- Camel Starter -->
        <dependency>
            <groupId>org.apache.camel.springboot</groupId>
            <artifactId>camel-spring-boot-starter</artifactId>
        </dependency>
        <!-- ... other dependencies ... -->
    </dependencies>
Copy to Clipboard Toggle word wrap

Spring Boot アプリケーションに必要な コンポーネントスターター も追加する必要があります。次の例は、自動設定スターターMQTT5 コンポーネント に追加する方法を示しています。

    <dependencies>
        <!-- ... other dependencies ... -->
        <dependency>
            <groupId>org.apache.camel.springboot</groupId>
            <artifactId>camel-paho-mqtt5</artifactId>
        </dependency>
    </dependencies>
Copy to Clipboard Toggle word wrap

3.1.1. Spring Boot 設定のサポート

スターター には、標準の application.properties または application.yml ファイルで設定できる設定パラメーターがリストされています。これらのパラメーターの形式は camel.component.[component-name].[parameter] です。たとえば、MQTT5 ブローカーの URL を設定するには、次のように設定できます。

camel.component.paho-mqtt5.broker-url=tcp://localhost:61616
Copy to Clipboard Toggle word wrap

3.1.2. Camel ルートの追加

Camel ルート は Spring アプリケーションコンテキストで検出されます。たとえば、org.springframework.stereotype.Component でアノテーションが付けられたルートがロードされ、Camel コンテキストに追加されて実行されます。

import org.apache.camel.builder.RouteBuilder;
import org.springframework.stereotype.Component;

@Component
public class MyRoute extends RouteBuilder {

    @Override
    public void configure() throws Exception {
        from("...")
            .to("...");
    }

}
Copy to Clipboard Toggle word wrap

3.1.3. ドメイン固有言語の使用

Apache Camel は、以下に示すさまざまなドメイン固有言語 (DSL) でエンタープライズ統合パターンまたはルートを作成するために、Java ドメイン固有言語 (DSL) を使用します。

  • Java DSL: Fluent Builder スタイルを使用する Java ベースの DSL。
  • XML DSL: Camel XML ファイル限定の XML ベースの DSL。
  • Yaml DSL: YAML 形式を使用してルートを作成するための DSL。

3.1.3.1. DSL の利点

汎用言語ではなく DSL を使用する利点は次のとおりです。

  • 学習しやすく、作業も簡単になります。メインロジックがどこで始まり、どこで終わるか明確です。
  • コードの安全性が向上します。Apache Camel の DSL には、すべてのステップを結合する強固なビルディングブロックがあります。
  • エラーはドメイン固有です。障害が発生した場合、エラーの説明がより明確でわかりやすくなります。コードがシンプルになることで、エラーが発生しにくくなります。
  • DSL はプラットフォームに依存しないように設計されています。コードが変更された場合、その影響は下位層に委譲されます。

3.1.3.2. 各種 DSL の比較

次のセクションでは、各種 DSL の違いと、各 DSL を使用するシナリオを説明します。

Expand
 Java DSLXML DSLYAML DSL

開発者ツール

  • Java をサポートするあらゆる IDE を使用できます。
  • Red Hat は、Apache Camel in VS Code 用のエクステンションパックを提供しています。このパックには、VS Code で Red Hat build of Apache Camel を操作するために必要なエクステンションがすべて含まれています。これには、Camel K Java スタンドアロンの言語サポート、Camel URI 補完と診断のサポート、ソースエディターからの Camel ルートの実行とデバッグが含まれます。
  • 言語サポートと基本的な Camel テキストルートのデバッグ。
  • コード支援とルートデバッガーを提供します。
  • XML をサポートするあらゆる IDE を使用できます。
  • Red Hat は、Apache Camel in VS Code 用のエクステンションパックを提供しています。このパックには、VS Code で Red Hat build of Apache Camel を操作するために必要なエクステンションがすべて含まれています。これには、Camel K Java スタンドアロンの言語サポート、Camel URI 補完と診断のサポート、ソースエディターからの Camel ルートの実行とデバッグが含まれます。
  • 言語サポートと基本的な Camel テキストルートのデバッグ
  • コード支援とルートデバッガーを提供します。
  • YAML をサポートするあらゆる IDE を使用できます。
  • Red Hat は、Apache Camel in VS Code 用のエクステンションパックを提供しています。このパックには、VS Code で Red Hat build of Apache Camel を操作するために必要なエクステンションがすべて含まれています。これには、Camel K Java スタンドアロンの言語サポート、Camel URI 補完と診断のサポート、ソースエディターからの Camel ルートの実行とデバッグが含まれます。
  • 言語サポートと基本的な Camel テキストルートのデバッグ。
  • コード支援とルートデバッガーを提供します。
  • また、ビジュアル統合デザイナーを提供する Kaoto VS Code エクステンションも含まれています。

Hawtio/Fuse コンソール

Hawtio は、ルートの作成にどの DSL が使用されたかに関係なく、ランタイムからルートを XML として取得し、そのルートを表示します。

Hawtio は、ルートの作成にどの DSL が使用されたかに関係なく、ランタイムからルートを XML として取得し、そのルートを表示します。

Hawtio は、ルートの作成にどの DSL が使用されたかに関係なく、ランタイムからルートを XML として取得し、そのルートを表示します。

ソフトウェア開発モデル

DSL は、fluent builder API を採用しています。

  • グラフィカルエディターを使用したモデリング開発アプローチが可能です (Eclipse Desktop)。
  • ドラッグアンドドロップベースの開発を可能にします。
  • 成熟した IDE サポートにより、テキストベースの開発も可能です。

最初から書くのは困難です。グラフィカルエディターを使用したモデリング開発アプローチが可能です。

コードのデバッグ

  • EIP 上で段階的な DSL デバッグを提供する IDE プラグインがあります。RouteBuilder にステップインすることはできますが、これは起動時にのみ呼び出され、処理中は呼び出されません。
  • ブレークポイントは、コア Camel クラスの Java コードに設定できます。
  • 一時的なプロセッサーを追加し、Java デバッガーを使用することもできます。
  • EIP 上で段階的な DSL デバッグを提供する IDE プラグインがあります。
  • ブレークポイントは、コア Camel クラスの Java コードに設定できます。
  • EIP 上で段階的な DSL デバッグを提供する IDE プラグインがあります。
  • ブレークポイントは、コア Camel クラスの Java コードに設定できます。

依存性注入 (DI) フレームワークとの統合

あらゆる DI フレームワークとの統合が容易になります。

XML DSL で DI フレームワークから既存の Bean を参照することは可能ですが、XML で新しい Bean を宣言すると、これらの Bean は Camel 専用になり、DI フレームワーク (Quarkus や Spring Boot など) の一部ではなくなります。

YAML DSL で DI フレームワークから既存の Bean を参照することは可能ですが、YAML で新しい Bean を宣言すると、これらの Bean は Camel 専用になり、DI フレームワーク (Quarkus や Spring Boot など) の一部ではなくなります。

チーム規模

柔軟性は高くなりますが、コードが読みにくくなります。長期間にわたってコードの作業とサポートを行う、同一の場所にある小規模なチームに適しています。

  • 大規模で多様なチームに適しています。
  • 柔軟性が低いため、複雑なルートの作成が難しくなります。
  • 大規模で多様なチームに適しています。
  • 柔軟性が低いため、複雑なルートの作成が難しくなります。

チーム構造

Camel 統合を開発するには、チームに Java 開発者が必要です。他のチームメンバーも、統合フローを読み取るために Java を理解できる必要があります。

  • XML は広く普及している言語であり、Camel を使用して開発する際にすべての開発者が既存のスキルを再利用できます。
  • より高いレベルの抽象化を提供し、ビジネス開発者やサポートチームとのコミュニケーションを容易にします。
  • YAML は広く普及している言語であり、Camel を使用して開発する際にすべての開発者が既存のスキルを再利用できます。
  • より高いレベルの抽象化を提供し、ビジネス開発者やサポートチームとのコミュニケーションを容易にします。

開発者としての経験と好み

  • Java は XML よりも簡潔で、内部クラスと機能的な側面を備えているため、経験豊富な開発者に適しています。
  • Java 開発者は、XML よりも純粋な Java とアノテーションを好む傾向があります。

ルートを設計するためのグラフィカルなアプローチを提供しているため、新しいユーザーに最適です。

ルートを設計するためのグラフィカルなアプローチを提供しているため、新しいユーザーに最適です。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る