本文档使用指南
本文档试图为广泛的潜在用户架起桥梁:
-
刚接触整个 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 /> 部分声明此依赖,如下所示: