|
此版本仍在开发中,尚未被视为稳定版本。如需最新稳定版本,请使用 Spring Data Cassandra 5.0.4! |
响应式基础设施
响应式 Cassandra 支持包含广泛的功能:
-
使用基于 Java 的
@Configuration类进行 Spring 配置支持。 -
ReactiveCqlTemplate辅助类,通过妥善处理常见的 Cassandra 数据访问操作来提高开发效率。 -
ReactiveCassandraTemplate是一个辅助类,通过以响应式方式使用ReactiveCassandraOperations来提升开发效率。 它包含了表与 POJO 之间的集成对象映射。 -
将异常转换为 Spring 的可移植数据访问异常层次结构。
-
功能丰富的对象映射,与 Spring 的转换服务集成。
-
基于 Java 的查询、条件和更新 DSL。
-
Repository接口的自动实现,包括对自定义查找方法的支持。
对于大多数面向数据的任务,您可以使用 ReactiveCassandraTemplate 或仓库(repository)支持,它们利用了丰富的对象映射功能。ReactiveCqlTemplate 通常用于递增计数器或执行临时的 CRUD 操作。ReactiveCqlTemplate 还提供了回调方法,便于获取底层 API 对象,例如 com.datastax.oss.driver.api.core.CqlSession,从而让您能够直接与 Cassandra 通信。
Spring Data for Apache Cassandra 在各种 API 中的对象命名上采用了与 DataStax Java Driver 一致的命名约定,使您能够立即熟悉这些对象,并将已有的知识轻松映射到 Spring API 上。
响应式使用分为两个阶段:组合(Composition)和执行(Execution)。
调用仓库方法可以让你通过获取 Publisher 实例并应用操作符来组合一个响应式序列。
在你订阅之前,不会发生任何 I/O 操作。
将该响应式序列传递给响应式执行基础设施(例如 Spring WebFlux
或 Vert.x)会订阅该发布者并启动实际的执行过程。
更多详情请参见 Project Reactor 文档。
响应式组合库
响应式编程领域提供了多种响应式组合库。 最常见的库是 RxJava 和 Project Reactor。
Spring Data for Apache Cassandra 构建于 DataStax Cassandra Driver 之上。
该驱动程序本身并非响应式(reactive),但其异步能力使我们能够采用并暴露 Publisher API,通过依赖 Reactive Streams 倡议来实现最大程度的互操作性。
通过使用 Project Reactor 的 ReactiveCassandraOperations 和 Flux 类型,提供了诸如 Mono 等静态 API。
Project Reactor 提供了多种适配器,用于在响应式包装类型之间进行转换(例如 Flux 与 Observable 之间的相互转换),但这类转换很容易使代码变得混乱。