最新の安定バージョンについては、Spring Integration 6.4.4 を使用してください!

2.0 および 2.1 間の変更

アプリケーションに影響する可能性のある重要な変更については、移行ガイド [GitHub] (英語) を参照してください。

新規コンポーネント

バージョン 2.1 は、多くの新しいコンポーネントを追加しました。

JSR-223 スクリプトのサポート

Spring Integration 2.0 では、Groovy (英語) のサポートを追加しました。Spring Integration 2.1 では、JSR-223 (英語) (「Java ™プラットフォームのスクリプト」)のサポートを実装することにより、追加の言語のサポートを大幅に拡張しました。これで、JSR-223 をサポートする次のようなスクリプト言語を使用できるようになります。

  • Javascript

  • Ruby および JRuby

  • Python および Jython

  • Groovy

詳細については、スクリプトのサポートを参照してください。

AMQP サポート

Spring Integration 2.1 は、高度なメッセージキュープロトコル (英語) (AMQP)を使用してメッセージを送受信するためのいくつかのチャネルアダプターを追加しました。さらに、Spring Integration は、ポイントツーポイントメッセージチャネルとパブリッシュサブスクライブメッセージチャネルも提供します。どちらも AMQP Exchange とキューによってサポートされています。

詳細については、AMQP サポートを参照してください。

MongoDB サポート

バージョン 2.1 の時点で、Spring Integration は MongoDB ベースの MessageStore を提供することにより、MongoDB (英語) のサポートを提供します。

詳細については、MongoDb サポートを参照してください。

Redis サポート

バージョン 2.1 の時点で、Spring Integration は、Redis ベースの MessageStore およびパブリッシュ / サブスクライブメッセージングアダプターを提供することにより、高度なキーバリューストアである Redis (英語) をサポートします。

詳細については、Redis サポートを参照してください。

Spring のリソース抽象化のサポート

バージョン 2.1 では、Spring のリソース抽象化に基づいて構築される新しいリソース受信チャネルアダプターを導入し、ファイル、URL、クラスパスリソースなど、さまざまな実際の型の基礎となるリソース全体の柔軟性をサポートします。ファイル受信チャネルアダプターに似ていますが、より一般的です。

詳細については、リソース受信チャネルアダプターを参照してください。

ストアドプロシージャコンポーネント

Spring Integration 2.1 を使用すると、JDBC モジュールは、受信および送信のチャネルアダプターや送信ゲートウェイなどのいくつかの新しいコンポーネントを追加することで、ストアドプロシージャのサポートも提供します。ストアドプロシージャのサポートは、Spring の SimpleJdbcCall (Javadoc) クラスを活用し、その結果、次のストアドプロシージャをサポートします。

  • Apache Derby

  • DB2

  • MySQL

  • Microsoft SQL Server

  • Oracle

  • PostgreSQL

  • Sybase

ストアドプロシージャコンポーネントは、次のデータベースの SQL 関数もサポートしています。

  • MySQL

  • Microsoft SQL Server

  • Oracle

  • PostgreSQL

詳細については、ストアドプロシージャーを参照してください。

XPath および XML 検証フィルター

Spring Integration 2.1 は、新しい XPath ベースのメッセージフィルターを提供します。XML モジュールの一部です。XPath フィルターを使用すると、XPath 式を使用してメッセージをフィルター処理できます。XML 検証フィルターのドキュメントも追加しました。

詳細については、XPath フィルターの使用および XML 検証フィルターを参照してください。

ペイロードエンリッチャー

Spring Integration 2.1 以降、ペイロードエンリッチャーを追加しました。ペイロードエンリッチャーは、公開されたリクエストチャネルに通常 Message (Javadoc) を渡し、応答メッセージを予期するエンドポイントを定義します。次に、応答メッセージは、式を評価してターゲットペイロードを強化するためのルートオブジェクトになります。

詳細については、ペイロードエンリッチャーを参照してください。

FTP および SFTP 送信ゲートウェイ

Spring Integration 2.1 は、リモートファイル転送プロトコル(FTP)またはセキュアファイル転送プロトコル(SFT)サーバーと対話するための 2 つの新しい送信ゲートウェイを提供します。これら 2 つのゲートウェイを使用すると、リモートコマンドの限られたセットを直接実行できます。

たとえば、これらの送信ゲートウェイを使用して、リモートファイルをリスト、取得、削除し、Spring Integration メッセージの流れをリモートサーバーのレスポンスで継続させることができます。

詳細については、FTP 送信ゲートウェイおよび SFTP 送信ゲートウェイを参照してください。

FTP セッションキャッシング

バージョン 2.1 の時点で、リモートファイルアダプター(FTP、SFTP など)のセッション管理に関して、より柔軟に対応しています。

具体的には、cache-sessions 属性を廃止しました(XML 名前空間のサポートを介して利用可能です)。別の方法として、sessionCacheSize および sessionWaitTimeout 属性を CachingSessionFactory に追加しました。

詳細については、FTP セッションキャッシングおよび SFTP セッションキャッシングを参照してください。

フレームワークリファクタリング

Spring Integration フレームワークをさまざまな方法でリファクタリングしました。すべてこのセクションで説明します。

ルーター構成の標準化

より一貫したユーザーエクスペリエンスを提供するために、Spring Integration 2.1 を使用してすべてのルーター実装にわたってルーターパラメーターを標準化しました。

Spring Integration 2.1 では、ignore-channel-name-resolution-failures 属性を削除して、その動作を resolution-required 属性に統合しました。また、resolution-required 属性のデフォルトは true になりました。

Spring Integration 2.1 以降、デフォルトの出力チャネルが定義されていない場合、ルーターはメッセージを表示することなくメッセージをドロップしなくなりました。つまり、デフォルトでは、ルーターは少なくとも 1 つの解決済みチャネルを必要とし(default-output-channel が設定されていない場合)、チャネルが決定されなかった(または送信の試行が成功しなかった)場合、デフォルトで MessageDeliveryException をスローします。

ただし、メッセージをサイレントにドロップする場合は、default-output-channel="nullChannel" を設定できます。

前述のルーターパラメーターの標準化とパラメーターの統合により、古い Spring Integration ベースのアプリケーションが機能しなくなる可能性があります。

詳細については、Routers を参照してください。

2.1 に更新された XML スキーマ

Spring Integration 2.1 には、更新された XML スキーマ (バージョン 2.1) が付属しています。前述した Router の標準化など、多くの改善が加えられています。

今後、開発者は常に最新の XML スキーマ(現在のバージョン 2.1)を宣言する必要があります。または、バージョンなしのスキーマを使用できます。一般的に、最良のオプションは、バージョンなしの名前空間を使用することです。これらは、Spring Integration の利用可能な最新バージョンを自動的に使用するためです。

次の例では、バージョンのない Spring Integration 名前空間を宣言しています。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:int="http://www.springframework.org/schema/integration"
   xsi:schemaLocation="http://www.springframework.org/schema/integration
           https://www.springframework.org/schema/integration/spring-integration.xsd
           http://www.springframework.org/schema/beans
           https://www.springframework.org/schema/beans/spring-beans.xsd">
...
</beans>

次の例では、明示的なバージョンで Spring Integration 名前空間を宣言しています。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:int="http://www.springframework.org/schema/integration"
   xsi:schemaLocation="http://www.springframework.org/schema/integration
           https://www.springframework.org/schema/integration/spring-integration-2.2.xsd
           http://www.springframework.org/schema/beans
           https://www.springframework.org/schema/beans/spring-beans.xsd">
...
</beans>

古い 1.0 および 2.0 スキーマはまだあります。ただし、アプリケーションコンテキストがこれらの非推奨スキーマのいずれかをまだ参照している場合、バリデーターは初期化に失敗します。

ソース管理とビルドインフラストラクチャ

バージョン 2.1 では、ソース管理とビルドインフラストラクチャに多くの変更が導入されました。このセクションでは、これらの変更について説明します。

Github でホストされるソースコード

バージョン 2.0 以降、Spring Integration プロジェクトはバージョン管理に Git (英語) を使用します。コミュニティの可視性をさらに高めるために、プロジェクトは SpringSource がホストする Git リポジトリから Github (英語) に移動されました。Spring Integration Git リポジトリは、spring-integration にあり [GitHub] (英語) ます。

このプロジェクトでは、コードの提供プロセスも改善しました。さらに、すべてのコミットがピアレビューされるようにします。実際、コアコミッターはコントリビューターと同じプロセスに従います。詳細については、コントリビュートする [GitHub] (英語) を参照してください。

Sonar によるソースコードの可視性の向上

ソースコードの可視性を向上させ、結果として Spring Integration のソースコードの品質を監視するために、ソナー (英語) のインスタンスを設定しました。メトリクスを毎晩収集し、sonar.spring.io (英語) で利用できるようにします。

新しいサンプル

Spring Integration の 2.1 リリースでは、Spring Integration サンプルプロジェクトも拡張し、AMQP サポートをカバーするサンプル、新しいペイロードエンリッチャーを紹介するサンプル、Spring Integration フローフラグメントをテストするための手法を示すサンプル、サンプルなど、多くの新しいサンプルを追加しました。Oracle データベースに対してストアドプロシージャを実行するため。詳細については、spring-integration-samples [GitHub] (英語) をご覧ください [GitHub] (英語)