|
此版本仍在开发中,尚未被视为稳定版本。如需最新稳定版本,请使用 Spring Data Cassandra 5.0.4! |
Cassandra 支持
本参考文档的这一部分介绍了 Spring Data for Apache Cassandra 提供的核心功能。 Spring Data 对 Apache Cassandra 的支持包含广泛的功能:
-
基于 Java 的
@Configuration类或 XML 命名空间,提供 Spring 配置支持。点击此处。 -
提供
CqlTemplate、AsyncCqlTemplate和ReactiveCqlTemplate辅助类,通过正确处理常见的 Cassandra 数据访问操作来提升开发效率。 -
提供 CQL 表与 POJO 之间对象映射的
CassandraTemplate、AsyncCassandraTemplate和ReactiveCassandraTemplate辅助类。 -
异常转换为 Spring 的可移植数据访问异常层次结构。
-
基于注解的映射元数据,可扩展以支持其他元数据格式。
-
基于 Java 的 查询、条件和更新 DSL。
-
自动实现 命令式和响应式
Repository接口,包括对 自定义查询方法 的支持。
抽象
Spring Data for Apache Cassandra 允许在 CQL 层和实体层进行交互。
Apache Cassandra 的 Spring Data 抽象所提供的价值,或许最好通过下表中列出的操作序列来体现。 该表展示了哪些操作由 Spring 负责处理,哪些操作由您(应用程序开发人员)负责。
| 行动 | Spring | 你 |
|---|---|---|
定义连接参数。 |
X |
|
打开连接。 |
X |
|
指定 CQL 语句。 |
X |
|
声明参数并提供参数值 |
X |
|
准备并运行语句。 |
X |
|
设置循环以遍历结果(如果有)。 |
X |
|
进行每次迭代的工作。 |
X |
|
处理任何异常。 |
X |
|
关闭会话。 |
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 Abstraction)允许你在数据访问层中创建仓库声明。 Spring Data 仓库抽象的目标是显著减少为各种持久化存储实现数据访问层所需的样板代码量。
对于大多数面向数据的任务,您可以使用 [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 上。