本文档使用指南
本文档试图为广泛的潜在用户架起桥梁:
-
刚接触整个 Spring 生态系统的开发者,包括 Spring Framework、Spring Data、具体模块(在本例中为 Spring Data Neo4j)以及 Neo4j。
-
对 Spring Data 不熟悉但有经验的 Neo4j 开发者,他们希望充分利用自己的 Neo4j 知识,但对声明式事务等内容不熟悉,并且不知道如何将后者与 Neo4j 集群需求结合。
-
对此特定模块和 Neo4j 不熟悉但有经验的 Spring Data 开发者,他们需要了解各个构建块如何协同工作。虽然该模块的编程范式与 Spring Data JDBC、Mongo 等非常一致,但查询语言(Cypher)、事务和集群行为是不同的,无法被抽象化。
以下是我们如何应对这些不同的需求:
许多与 Neo4j 相关的问题可以在常见问题解答中找到。这些问题尤其适合那些非常熟悉 Neo4j 特定需求并希望了解如何使用 Spring Data Neo4j 解决这些问题的人员。
如果您已经熟悉 Spring Data 的核心概念,请直接前往快速入门。本章将引导您了解配置应用程序以连接到 Neo4j 实例的不同选项,以及如何构建您的领域模型。
在大多数情况下,您需要一个域。请前往 映射 了解如何将节点和关系映射到您的域模型。
之后,你将需要一些手段来查询领域。选择包括 Neo4j 存储库、Neo4j 模板,或者在更底层的 Neo4j 客户端。所有这些都可以以响应式的方式使用。除了分页机制外,标准存储库的所有功能在响应式版本中也都可用。
如果你来自 Spring Data Neo4j 的旧版本——通常缩写为 SDN+OGM 或 SDN5——你可能会对 SDN 介绍 特别感兴趣,尤其是在 SDN+OGM 与当前 SDN 之间的关系 方面。在同一章节中,你还可以了解 SDN 的 构建模块。
要了解更多关于仓库的一般概念,请前往仓库。
当然,你可以继续阅读,从序言开始,并逐步进入一个温和的入门指南。
章节摘要
介绍 Neo4j
图数据库是一种专门用于存储和检索庞大信息网络的存储引擎。它高效地将数据存储为节点,这些节点与其他节点甚至自身节点之间存在关系,从而允许对这些结构进行高性能的检索和查询。可以为节点和关系添加属性。节点可以标记为零个或多个标签,关系始终是有向且命名的。
Spring Data 介绍
Spring Data 使用了 Spring 框架的核心功能,例如 IoC 容器、类型转换系统、表达式语言、JMX 集成和可移植的 DAO 异常层次结构。虽然不需要了解所有的 Spring API,但理解它们背后的概念是必要的。至少,应该熟悉 IoC 背后的思想。
介绍 Spring Data Neo4j
Spring Data Neo4j,简称 SDN,是由 Neo4j, Inc. 与 VMware 的 Spring Data 团队紧密合作创建和维护的下一代 Spring Data 模块。它支持所有官方发布的 Neo4j 版本,包括 Neo4j AuraDB。Spring Data Neo4j 项目将上述 Spring Data 概念应用于使用 Neo4j 图数据存储的解决方案开发中。
Spring Data Neo4j 的构建模块
SDN 由可组合的构建块组成。它建立在 Neo4j Java 驱动之上。Java 驱动的实例通过 Spring Boot 的自动配置本身提供。驱动的所有配置选项都可以在 spring.neo4j 命名空间中访问。驱动 Bean 提供了命令式、异步和响应式的方法来与 Neo4j 进行交互。
新动态与亮点
Spring Data Neo4j 版本 7.2 的发布说明
依赖项
由于各个 Spring Data 模块的起始日期不同,大多数模块都带有不同的主版本号和次版本号。找到兼容版本的最简单方法是依赖我们提供的 Spring Data Release Train BOM,其中定义了兼容的版本。在 Maven 项目中,你可以在 POM 文件的 \<dependencyManagement /> 部分声明此依赖,如下所示: