このセクションでは、外部システムとのメッセージベースの通信をサポートするために、Spring Integration が提供するさまざまなチャネルアダプターとメッセージングゲートウェイについて説明します。

AMQP から Zookeeper までの各システムには独自の統合要件があり、このセクションではそれらについて説明します。

エンドポイントのクイックリファレンステーブル

前のセクションで説明したように、Spring Integration は、外部システム、ファイルシステムなどとのインターフェースに使用される多くのエンドポイントを提供します。

透過的な依存関係管理のために、Spring Integration は Maven 構成にインポートされる部品表 POM を提供します。

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-bom</artifactId>
            <version>5.3.1.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

要点をまとめると:

  • 受信チャネルアダプターは、データをメッセージングアプリケーションに取り込むための一方向統合に使用されます。

  • 送信チャネルアダプターは、メッセージングアプリケーションからデータを送信するための一方向統合に使用されます。

  • 受信ゲートウェイは、他のシステムがメッセージングアプリケーションを呼び出して応答を受信する双方向統合フローに使用されます。

  • 送信ゲートウェイは、メッセージングアプリケーションが外部サービスまたはエンティティを呼び出し、結果を期待する双方向統合フローに使用されます。

次の表は、適切な章へのクイックリンクを使用して、さまざまなエンドポイントをまとめたものです。

表 1: エンドポイントのクイックリファレンス
モジュール 受信アダプター 送信アダプター 受信ゲートウェイ 送信ゲートウェイ

AMQP

受信チャネルアダプター

送信チャネルアダプター

受信ゲートウェイ

送信ゲートウェイ

イベント

Spring アプリケーションイベントの受信

Spring アプリケーションイベントの送信

N

N

フィード

フィード受信チャネルアダプター

N

N

N

ファイル

ファイルを読むおよび "tail" ファイル

ファイルを書く

N

ファイルを書く

FTP(S)

FTP 受信チャネルアダプター

FTP 送信チャネルアダプター

N

FTP 送信ゲートウェイ

Gemfire

受信チャネルアダプターおよび連続クエリ受信チャネルアダプター

送信チャネルアダプター

N

N

HTTP

HTTP 名前空間のサポート

HTTP 名前空間のサポート

HTTP 受信コンポーネント

HTTP 送信コンポーネント

JDBC

受信チャネルアダプターおよびストアドプロシージャ受信チャネルアダプター

送信チャネルアダプターおよびストアドプロシージャの送信チャネルアダプター

N

送信ゲートウェイおよびストアドプロシージャの送信ゲートウェイ

JMS

受信チャネルアダプターおよびメッセージ駆動型チャネルアダプター

送信チャネルアダプター

受信ゲートウェイ

送信ゲートウェイ

JMX

通知リスニングチャネルアダプターおよび属性ポーリングチャネルアダプターおよびツリーポーリングチャネルアダプター

通知発行チャネルアダプターおよび操作呼び出しチャネルアダプター

N

操作呼び出し送信ゲートウェイ

JPA

受信チャネルアダプター

送信チャネルアダプター

N

送信ゲートウェイの更新および送信ゲートウェイの取得

メール

メール受信チャネルアダプター

メール送信チャネルアダプター

N

N

MongoDB

MongoDB 受信チャネルアダプター

MongoDB 送信チャネルアダプター

N

N

MQTT

受信(メッセージ駆動型)チャネルアダプター

送信チャネルアダプター

N

N

Redis

Redis 受信チャネルアダプターおよび Redis キュー受信チャネルアダプターおよび Redis ストア受信チャネルアダプター

Redis 送信チャネルアダプターおよび Redis キュー送信チャネルアダプターおよび RedisStore 送信チャネルアダプター

Redis キュー受信ゲートウェイ

Redis 送信コマンドゲートウェイおよび Redis キュー送信ゲートウェイ

リソース

リソース受信チャネルアダプター

N

N

N

RMI

N

N

受信 RMI

送信 RMI

RSocket

N

N

RSocket 受信ゲートウェイ

RSocket 送信ゲートウェイ

SFTP

SFTP 受信チャネルアダプター

SFTP 送信チャネルアダプター

N

SFTP 送信ゲートウェイ

STOMP

STOMP 受信チャネルアダプター

STOMP 送信チャネルアダプター

N

N

ストリーム

ストリームからの読み取り

ストリームへの書き込み

N

N

syslog

Syslog Inbound Channel Adapter

N

N

N

TCP

TCP アダプター

TCP アダプター

TCP ゲートウェイ

TCP ゲートウェイ

UDP

UDP アダプター

UDP アダプター

N

N

WebFlux

WebFlux 受信チャネルアダプター

WebFlux 送信チャネルアダプター

受信 WebFlux ゲートウェイ

送信 WebFlux ゲートウェイ

Web サービス

N

N

受信 Web サービスゲートウェイ

送信 Web サービスゲートウェイ

Web ソケット

WebSocket 受信チャネルアダプター

WebSocket 送信チャネルアダプター

N

N

XMPP

XMPP メッセージおよび XMPP プレゼンス

XMPP メッセージおよび XMPP プレゼンス

N

N

さらに、コアメッセージングで説明したように、Spring Integration は、Plain Old Java Object(POJO)とのインターフェースのためのエンドポイントを提供します。チャンネルアダプターで説明したように、<int:inbound-channel-adapter> 要素を使用すると、データの Java メソッドをポーリングできます。<int:outbound-channel-adapter> 要素を使用すると、void メソッドにデータを送信できます。メッセージングゲートウェイで説明したように、<int:gateway> 要素により、Java プログラムはメッセージングフローを呼び出すことができます。これらはそれぞれ、Spring Integration のソースレベルの依存関係を必要とせずに機能します。このコンテキストでの送信ゲートウェイに相当するのは、サービスアクティベーター(サービスアクティベーターを参照)を使用して、ある種の Object を返すメソッドを呼び出すことです。

バージョン 5.2.2 以降、すべての受信ゲートウェイは、応答タイムアウト中にダウンストリームフローが応答を返さない場合に MessageTimeoutException をスローするように errorOnTimeout ブールフラグで構成できます。タイマーは、スレッドがゲートウェイに制御を返すまで開始されないため、通常、ダウンストリームフローが非同期であるか、フィルターなどのハンドラーから null が返されて停止する場合にのみ役立ちます。このような例外は、errorChannel フローで処理できます。たとえば、リクエストクライアントに対するカバレッジ応答を生成します。