您阅读本文档的指南
本文档试图弥合不同类型用户之间的差异:
-
刚接触整个 Spring 生态系统的人,包括 Spring Framework、Spring Data、具体模块(本例中为 Spring Data Neo4j)以及 Neo4j。
-
经验丰富的 Neo4j 开发人员,但刚接触 Spring Data,希望充分利用自己的 Neo4j 知识,却不熟悉例如声明式事务,以及如何将后者与 Neo4j 集群需求结合起来。
-
经验丰富的 Spring Data 开发人员,但刚接触这个特定模块和 Neo4j,需要学习各个构建块如何协同工作。虽然该模块的编程范式与 Spring Data JDBC、Mongo 等非常一致,但其查询语言(Cypher)、事务和集群行为则有所不同,无法被抽象掉。
下面我们说明如何满足这些不同的需求:
许多 Neo4j 特有的问题可以在常见问题(FAQ)中找到。这些问题与那些熟知 Neo4j 特定需求、并想知道如何用 Spring Data Neo4j 解决它们的人尤其相关。
如果您已经熟悉 Spring Data 的核心概念,请直接前往快速上手。本章将带您了解配置应用程序以连接 Neo4j 实例的不同选项,以及如何对领域建模。
在大多数情况下,您需要一个领域。请前往映射,了解如何将节点和关系映射到您的领域模型。
之后,您将需要某种方式来查询领域。可选的有 Neo4j 仓库、Neo4j 模板,或在更低层级上的 Neo4j 客户端。它们全部也都提供响应式版本。除分页机制外,标准仓库的所有特性在响应式变体中都可用。
如果您来自旧版本的 Spring Data Neo4j(通常缩写为 SDN+OGM 或 SDN1),您很可能会对 SDN 简介尤其感兴趣,特别是 SDN+OGM 与当前 SDN 之间的关系。在同一章中,您还会了解到 SDN 的构建块。
要进一步了解仓库的一般概念,请前往仓库。
当然,您也可以继续往下读,接着阅读前言,以及一篇循序渐进的入门指南。
本节小结
Neo4j 简介
图数据库是一种存储引擎,专门用于存储和检索庞大的信息网络。它高效地将数据存储为节点,并带有指向其他节点甚至相同节点的关系,从而支持对这些结构进行高性能的检索和查询。属性可以添加到节点和关系上。节点可以用零个或多个标签标记,关系则总是有方向且有名称的。
Spring Data 简介
Spring Data 使用 Spring Framework 的核心功能,例如 IoC 容器、类型转换系统、表达式语言、 JMX 集成以及可移植的 DAO 异常层次结构。虽然不必了解所有 Spring API ,但理解其背后的概念是必要的。至少,您应熟悉 IoC 背后的思想。
Spring Data Neo4j 简介
Spring Data Neo4j (简称 SDN )是下一代 Spring Data 模块,由 Neo4j, Inc. 与 VMware 的 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 发布列车 BOM ,其中定义了兼容版本。在 Maven 项目中,您可以在 POM 的 `<dependencyManagement />` 部分声明此依赖,如下所示: