此版本仍在开发中,尚未被视为稳定版本。如需最新的稳定版本,请使用 Spring Data Neo4j 7.5.0

Spring Data Neo4j 的构建块

概述

SDN 由可组合的构建块组成。 它构建在 Neo4j Java 驱动程序之上。 Java 驱动程序的实例是通过 Spring Boot 的自动配置本身提供的。 驱动程序的所有配置选项都可以在命名空间中访问spring.neo4j. 驱动程序 bean 提供了命令式、异步和响应式方法来与 Neo4j 交互。

您可以使用驱动程序在该 bean 上提供的所有事务方法,例如自动提交事务事务函数和非托管事务。 请注意,这些事务与正在进行的 Spring 事务并不紧密。

与 Spring Data 和 Spring 的平台或响应式事务管理器的集成从 Neo4j Client 开始。 客户端是 SDN 的一部分,通过单独的Starters进行配置,spring-boot-starter-data-neo4j. 该 starter 的配置命名空间为spring.data.neo4j.

客户端与映射无关。 它不知道您的域类,您负责将结果映射到适合您需求的对象。

下一个更高级别的抽象是 Neo4j 模板。 它知道您的域,您可以使用它来查询任意域对象。 该模板在具有大量域类或自定义查询的情况下会派上用场,您不想为每个域类或自定义查询创建额外的存储库抽象。

最高级别的抽象是 Spring Data 存储库。

SDN 的所有抽象都以命令式和响应式两种方式出现。 不建议在同一应用程序中混合使用这两种编程样式。 响应式基础设施需要 Neo4j 4.0+ 数据库。

image$SDN 构建块
图 1.SDN 构建块

模板机制类似于其他 store 的模板。 在我们的常见问题解答中查找有关它的更多信息。 Neo4j 客户端本身是 SDN 独有的。 您可以在附录中找到其文档。

在包级别

描述

org.springframework.data.neo4j.config

此软件包包含与配置相关的支持类,这些类可用于特定于应用程序的 configuration 类。如果您不依赖 Spring Boot 的自动配置,抽象 Base Class 会很有帮助。 该软件包提供了一些支持审计的其他注释。

org.springframework.data.neo4j.core

此软件包包含用于创建可执行查询的命令式或响应式客户端的核心基础设施。 标记为@API(status = API.Status.STABLE)可以安全使用。核心包提供对 client 和 template 的命令式和响应式变体。

org.springframework.data.neo4j.core.convert

提供一组 SDN 支持的简单类型。这Neo4jConversions允许引入额外的、自定义的 变换 器。

org.springframework.data.neo4j.core.support

此包提供了几个可能对您的域有所帮助的支持类,例如谓词 指示可以重试某些事务以及其他转换器和 ID 生成器。

org.springframework.data.neo4j.core.transaction

包含用于将非托管 Neo4j 事务转换为 Spring 托管事务的核心基础结构。公开 命令式和响应式TransactionManagerNeo4jTransactionManagerReactiveNeo4jTransactionManager.

org.springframework.data.neo4j.repository

此软件包提供 Neo4j 命令式和响应式存储库 API。

org.springframework.data.neo4j.repository.config

Neo4j 特定存储库的配置基础设施,尤其是启用命令式的专用注释 和响应式 Spring Data Neo4j 存储库。

org.springframework.data.neo4j.repository.support

这个包提供了几个公共支持类,用于构建自定义的命令式和响应式 Spring Data Neo4j repository 基类。支持类与 SDN 本身使用的类相同。