Spring Data Neo4j 的构建块
概述
SDN 由可组合的构建块组成。它构建在 Neo4j Java 驱动 之上。Java 驱动的实例由 Spring Boot 的自动配置本身提供。驱动的所有配置项都可在 spring.neo4j 命名空间下访问。驱动 bean 提供命令式、异步和响应式方法,用于与 Neo4j 交互。
与 Spring Data 以及 Spring 的平台或响应式事务管理器的集成,从 Neo4j 客户端开始。客户端是 SDN 的一部分,通过一个独立的起步依赖 spring-boot-starter-data-neo4j 配置。该起步依赖的配置命名空间为 spring.data.neo4j。
该客户端与映射无关。它不了解您的领域类,您负责将结果映射到满足您需求的对象。
再上一层的抽象是 Neo4j 模板。它了解您的领域,您可以用它查询任意领域对象。在领域类数量众多、或有大量自定义查询而您不想为每一个都创建额外仓库抽象的场景中,模板很方便。
最高层的抽象是 Spring Data 仓库。
SDN 的所有抽象都同时提供命令式和响应式两种风格。不建议在同一个应用中混用这两种编程风格。响应式基础设施需要 Neo4j 4.0+ 数据库。

图 1. SDN 构建块
包级别
| 包 | 描述 |
|---|---|
org.springframework.data.neo4j.config | * 可用于应用程序特定的、带注解的配置类。如果您不依赖 Spring Boot 的自动配置,这些抽象基类会很有帮助。 |
org.springframework.data.neo4j.core | * 可执行查询的命令式或响应式客户端。标记为 @API(status = API.Status.STABLE) 的包可以安全使用。核心包提供对以下两者的访问: |
org.springframework.data.neo4j.core.convert | |
org.springframework.data.neo4j.core.support | * 在您的领域中很有帮助,例如指示某个事务可能 |
org.springframework.data.neo4j.core.transaction | * 将事务纳入 Spring 托管事务。同时暴露命令式和响应式 TransactionManager,即 Neo4jTransactionManager,以及 |
org.springframework.data.neo4j.repository | |
org.springframework.data.neo4j.repository.config | * 专门用于启用命令式和响应式 Spring Data Neo4j 的注解 |
org.springframework.data.neo4j.repository.support | * 构建自定义的命令式和响应式 Spring Data Neo4j 仓库基类。 |