跳到主要内容

Spring Data Neo4j 的构建模块

DeepSeek V3 中英对照 Building blocks of Spring Data Neo4j

概述

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

你可以使用驱动在该 bean 上提供的所有事务方法,例如自动提交事务事务函数以及非托管事务。需要注意的是,这些事务并不与正在进行的 Spring 事务绑定。

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

客户端与映射无关。它不关心你的领域类,你需要负责将结果映射到适合你需求的对象上。

在更高一层的抽象级别中,我们提供了 Neo4j 模板。它了解你的领域模型,你可以利用它来查询任意的领域对象。在存在大量领域类或自定义查询的场景下,模板非常有用,因为你不必为每个场景都创建一个额外的存储库抽象。

最高层次的抽象是 Spring Data 仓库。

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

image$sdn 构建模块

图 1. SDN 构建模块

模板机制与其他商店的模板类似。关于它的更多信息可以在我们的 FAQ 中找到。Neo4j Client 是 SDN 独有的功能。您可以在附录 中找到其文档。

在包级别

包名描述
org.springframework.data.neo4j.config该包包含与配置相关的支持类,可用于特定于应用程序的注解配置类。如果不依赖 Spring Boot 的自动配置,抽象基类将非常有用。该包还提供了一些额外的注解,以启用审计功能。
org.springframework.data.neo4j.core该包包含了创建可执行查询的命令式或响应式客户端的核心基础设施。标记为 @API(status = API.Status.STABLE) 的包可以安全使用。核心包提供了对命令式和响应式客户端及其模板的访问。
org.springframework.data.neo4j.core.convert提供了 SDN 支持的一组简单类型。Neo4jConversions 允许引入额外的自定义转换器。
org.springframework.data.neo4j.core.support该包提供了几个支持类,可能在您的领域中有所帮助,例如表示某些事务可以重试的谓词,以及额外的转换器和 ID 生成器。
org.springframework.data.neo4j.core.transaction包含将非托管的 Neo4j 事务转换为 Spring 托管事务的核心基础设施。暴露了命令式和响应式的 TransactionManager,分别为 Neo4jTransactionManagerReactiveNeo4jTransactionManager
org.springframework.data.neo4j.repository该包提供了 Neo4j 的命令式和响应式仓库 API。
org.springframework.data.neo4j.repository.configNeo4j 特定仓库的配置基础设施,特别是用于启用命令式和响应式 Spring Data Neo4j 仓库的专用注解。
org.springframework.data.neo4j.repository.support该包提供了几个公共支持类,用于构建自定义的命令式和响应式 Spring Data Neo4j 仓库基类。这些支持类与 SDN 自身使用的类相同。