Spring Data Neo4j 的构建块

概述

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

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

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

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

下一个更高的抽象级别是 Neo4j 模板。它知道您的域,您可以使用它来查询任意域对象。在具有大量域类或自定义查询(您不希望为每个查询创建额外的存储库抽象)的情况下,模板非常方便。

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

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

image$sdn buildingblocks
图 1. SDN 构建块

模板机制类似于其他存储的模板。在 我们的常见问题解答 中可以找到更多相关信息。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` 分别公开为 `Neo4jTransactionManager` 和 `ReactiveNeo4jTransactionManager`。

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 存储库基类。支持类与 SDN 本身使用的类相同。