Cassandra 支援
本文件的這一部分解釋了 Spring Data for Apache Cassandra 提供的核心功能。Spring Data 對 Apache Cassandra 的支援包含廣泛的特性:
-
Spring 配置支援,使用基於 Java 的
@Configuration
類或 XML 名稱空間。 -
CqlTemplate
、AsyncCqlTemplate
和ReactiveCqlTemplate
輔助類,透過正確處理常見的 Cassandra 資料訪問操作來提高生產力。 -
CassandraTemplate
、AsyncCassandraTemplate
和ReactiveCassandraTemplate
輔助類,提供 CQL 表和 POJO 之間的物件對映。 -
異常轉換 為 Spring 可移植的 資料訪問異常體系結構。
-
功能豐富的物件對映,與 Spring 的 Conversion Service 整合。
-
基於註解的對映元資料,可擴充套件以支援其他元資料格式。
-
基於 Java 的查詢、條件和更新 DSL。
-
自動實現命令式和響應式
Repository
介面,包括支援自定義查詢方法。
抽象
Spring Data for Apache Cassandra 允許在 CQL 和實體兩個層面進行互動。
Spring Data for Apache Cassandra 抽象提供的價值或許最好地體現在下表中列出的操作序列中。下表顯示了哪些操作由 Spring 負責,哪些操作由您(應用程式開發者)負責。
操作 | Spring | 您 |
---|---|---|
定義連線引數。 |
X |
|
開啟連線。 |
X |
|
指定 CQL 語句。 |
X |
|
宣告引數並提供引數值 |
X |
|
準備並執行語句。 |
X |
|
設定迴圈以遍歷結果(如果有)。 |
X |
|
處理每次迭代。 |
X |
|
處理任何異常。 |
X |
|
關閉 Session。 |
X |
核心的 CQL 支援負責處理所有低級別的細節,這些細節可能使 Cassandra 和 CQL 成為一個繁瑣的開發 API。使用對映的實體物件可以實現模式生成、物件對映和 repository 支援。
選擇 Cassandra 資料庫訪問方法
您可以選擇幾種方法作為 Cassandra 資料庫訪問的基礎。Spring 對 Apache Cassandra 的支援有不同的風格。一旦開始使用其中一種方法,您仍然可以混搭,以包含來自不同方法的特性。以下方法效果良好:
-
CqlTemplate
和ReactiveCqlTemplate
是經典的 Spring CQL 方法,也是最受歡迎的方法。這是“最低級別”的方法。請注意,像CassandraTemplate
這樣的元件在底層使用了CqlTemplate
。 -
CassandraTemplate
封裝了CqlTemplate
,提供查詢結果到物件的對映,並使用SELECT
、INSERT
、UPDATE
和DELETE
方法代替編寫 CQL 語句。這種方法提供了更好的文件和易用性。 -
ReactiveCassandraTemplate
封裝了ReactiveCqlTemplate
,提供查詢結果到物件的對映,並使用SELECT
、INSERT
、UPDATE
和DELETE
方法代替編寫 CQL 語句。這種方法提供了更好的文件和易用性。 -
Repository 抽象允許您在資料訪問層中建立 repository 宣告。Spring Data 的 repository 抽象的目標是顯著減少為各種持久化儲存實現資料訪問層所需的樣板程式碼數量。
對於大多數資料相關的任務,您可以使用 [Reactive|Async]CassandraTemplate
或 Repository
支援,它們都使用了豐富的物件對映功能。[Reactive|Async]CqlTemplate
通常用於遞增計數器或執行臨時 CRUD 操作。[Reactive|Async]CqlTemplate
還提供了回撥方法,使您可以輕鬆獲取低階 API 物件,例如 com.datastax.oss.driver.api.core.CqlSession
,這使您可以直接與 Cassandra 通訊。Spring Data for Apache Cassandra 在各種 API 中的物件命名遵循與 DataStax Java Driver 中一致的約定,以便於熟悉,從而您可以將現有知識對映到 Spring API 上。