最新の安定バージョンについては、Spring Data Cassandra 5.0.2 を使用してください! |
リアクティブインフラストラクチャ
リアクティブ Cassandra サポートには、幅広い機能が含まれています。
Java ベースの
@Configurationクラスを使用した Spring 構成のサポート。一般的な Cassandra データアクセス操作を適切に処理することで生産性を向上させる
ReactiveCqlTemplateヘルパークラス。ReactiveCassandraOperationsをリアクティブな方法で使用することで生産性を向上させるReactiveCassandraTemplateヘルパークラス。これには、テーブルと POJO 間の統合されたオブジェクトマッピングが含まれます。Spring のポータブルデータアクセス例外階層への例外変換。
Spring の変換サービスと統合された機能豊富なオブジェクトマッピング。
Java ベースのクエリ、条件、更新 DSL。
Repositoryインターフェースの自動実装 (カスタムファインダーメソッドのサポートを含む)。
ほとんどのデータ指向タスクでは、豊富なオブジェクトマッピング機能を使用する ReactiveCassandraTemplate またはリポジトリサポートを使用できます。ReactiveCqlTemplate は、カウンターを増分したり、アドホック CRUD 操作を実行したりするためによく使用されます。ReactiveCqlTemplate は、Cassandra と直接通信できる com.datastax.oss.driver.api.core.CqlSession などの低レベル API オブジェクトを簡単に取得できるコールバックメソッドも提供します。Apache Cassandra の Spring Data は、さまざまな API のオブジェクトに対して、DataStax Java ドライバーのオブジェクトと同じ命名規則を使用しているため、すぐに使い慣れることができ、既存の知識を Spring API にマッピングできます。
リアクティブな使用は、構成と実行の 2 つのフェーズに分かれています。
リポジトリメソッドを呼び出すと、Publisher インスタンスを取得して演算子を適用することで、リアクティブシーケンスを構成できます。サブスクライブするまで I/O は発生しません。リアクティブシーケンスをリアクティブ実行インフラストラクチャ ( Spring WebFlux や Vert.x (英語) など) に渡すと、パブリッシャーにサブスクライブされ、実際の実行が開始されます。詳細については、プロジェクトリアクターのドキュメント (英語) を参照してください。
リアクティブ組成物 ライブラリ
リアクティブスペースでは、さまざまなリアクティブ組成ライブラリを提供します。最も一般的なライブラリは RxJava [GitHub] (英語) およびプロジェクト Reactor (英語) です。
Apache Cassandra 用の Spring Data は、DataStax Cassandra ドライバー [GitHub] (英語) 上に構築されています。ドライバーはリアクティブではありませんが、非同期機能により、Reactive Streams (英語) イニシアチブに依存して、Publisher API を採用して公開し、最大限の相互運用性を提供できます。ReactiveCassandraOperations などの静的 API は、プロジェクト Reactor の Flux および Mono 型を使用して提供されます。プロジェクト Reactor は、リアクティブラッパー型 (Flux から Observable へ、およびその逆) を変換するためのさまざまなアダプターを提供していますが、変換によってコードが乱雑になる可能性があります。