= Spring Data for Apache Cassandra image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-cassandra%2Fmain&subject=Build[link=https://jenkins.spring.io/view/SpringData/job/spring-data-cassandra/] https://gitter.im/spring-projects/spring-data[image:https://badges.gitter.im/spring-projects/spring-data.svg[Gitter]] image:https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&labelColor=02303A["Revved up by Develocity", link="https://ge.spring.io/scans?search.rootProjectNames=Spring Data for Apache Cassandra"]
https://projects.spring.io/spring-data[Spring Data]项目的主要目标是使构建使用新数据访问技术(如非关系型数据库、map-reduce框架和基于云的数据服务)的Spring应用程序变得更加容易。
Apache Cassandra NoSQL数据库为寻求处理高速度、大容量和可变数据流的团队提供了许多新功能。这种新的思维方式引入了新概念和学习曲线,可能会让团队成员和团队经理感到困难。Spring Data for Apache Cassandra为那些曾使用过其他Spring Data模块的人提供了一个熟悉的接口。
使用Spring Data for Apache Cassandra可以显著降低开发Apache Cassandra应用程序的学习曲线。无论是使用带注解的POJO保持高级抽象,还是使用高性能数据摄取功能进行低级操作,Spring Data for Apache Cassandra的模板都能满足每个应用程序的需求。
== 特性
- 基于通用Spring Data接口构建存储库
- 支持同步、响应式和异步数据操作
- 支持基于XML的Keyspace创建和CQL表创建
- 支持所有集群和会话功能的JavaConfig和XML配置
- 将异常转换为熟悉的Spring DataAccessException层次结构
- 便捷的QueryBuilders,无需学习CQL
- 自动实现Repository接口,包括支持自定义查询方法
- 基于4.x版本的DataStax CQL Java驱动程序
== 行为准则
== 入门
以下是使用Java中的Spring Data Repositories的应用程序示例:
[source,java]
public interface PersonRepository extends CrudRepository<Person, Long> {
List
List
@Service public class MyService {
private final PersonRepository repository;
public MyService(PersonRepository repository) { this.repository = repository; }
public void doWork() {
repository.deleteAll();
Person person = new Person();
person.setFirstname("Matthew");
person.setLastname("Adams");
repository.save(person);
List<Person> lastNameResults = repository.findByLastname("Adams");
List<Person> firstNameResults = repository.findByFirstnameLike("M*");
} }
@Configuration @EnableCassandraRepositories class ApplicationConfig extends AbstractCassandraConfiguration {
@Override public String getContactPoints() { return "localhost"; }
@Override protected String getKeyspaceName() { return "springdata"; } }
=== Maven配置
添加Maven依赖:
[source,xml]
如果您更喜欢使用即将发布的主要版本的最新快照,请使用我们的Maven快照仓库并声明适当的依赖版本。
[source,xml]
== 获取帮助
使用Spring Data遇到问题?我们很乐意提供帮助!
- 查看https://docs.spring.io/spring-data/cassandra/docs/current/reference/html/[参考文档]和https://docs.spring.io/spring-data/cassandra/docs/current/api/[Javadocs]。
- 学习Spring基础知识 – Spring Data建立在Spring Framework之上,请查看https://spring.io[spring.io]网站获取大量参考文档。如果您刚开始使用Spring,可以尝试其中一个https://spring.io/guides[指南]。
- 提问 - 我们会关注https://stackoverflow.com[stackoverflow.com]上标记为https://stackoverflow.com/tags/spring-data[`spring-data-cassandra`]的问题。您也可以在https://gitter.im/spring-projects/spring-data[Gitter]上与社区交流。
- 在https://github.com/spring-projects/spring-data-cassandra/issues[github.com/spring-projects/spring-data-cassandra/issues]报告Spring Data for Apache Cassandra的错误。
== 报告问题
Spring Data使用GitHub作为问题跟踪系统来记录错误和功能请求。如果您想提出问题,请遵循以下建议:
- 在记录错误之前,请搜索https://github.com/spring-projects/spring-data-cassandra/issues[问题跟踪器],看看是否有人已经报告了该问题。
- 如果该问题尚不存在,请https://github.com/spring-projects/spring-data-cassandra/issues/new[创建一个新问题]。
- 请提供尽可能多的信息,包括您使用的Spring Data版本和JVM版本。
- 如果需要粘贴代码或包含堆栈跟踪,请在文本前后使用Markdown +++```+++ 转义。
- 如果可能,请尝试创建一个重现该问题的测试用例或项目。附上您的代码链接或包含代码的压缩文件。
== 从源代码构建
您不需要从源代码构建来使用Spring Data(二进制文件在https://repo.spring.io[repo.spring.io]中),但如果您想尝试最新的功能,可以使用https://github.com/takari/maven-wrapper[maven wrapper]轻松构建Spring Data。您还需要JDK 17。
[source,bash]
$ ./mvnw clean install
如果您想使用常规的mvn
命令进行构建,则需要https://maven.apache.org/run-maven/index.html[Maven v3.8.0或更高版本]。
如果您希望提交拉取请求,另请参阅link:CONTRIBUTING.adoc[CONTRIBUTING.adoc],特别是在进行第一个非微小更改之前,请签署https://cla.pivotal.io/sign/spring[贡献者协议]。
== 最初的贡献者
Spring Data for Apache Cassandra最初由以下公司和个人创建和支持:
- http://www.prowaveconsulting.com[Prowave Consulting] - David Webb
- http://www.scispike.com[SciSpike] - Matthew Adams
- John McPeek
=== 构建参考文档
构建文档的同时也会构建项目,但不运行测试。
[source,bash]
$ ./mvnw clean install -Pantora
生成的文档可在spring-data-cassandra-distribution/antora/site/index.html
中找到。
== 示例
- https://github.com/spring-projects/spring-data-examples/[Spring Data Examples]包含更详细解释特定功能的示例项目。
== 许可证
Spring Data for Apache Cassandra是根据https://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0许可证]发布的开源软件。