Spring Data Neo4j 的构建块
概述
SDN 由可组合的构建块组成。它构建在 Neo4j Java 驱动程序 之上。Java 驱动程序的实例通过 Spring Boot 的自动配置本身提供。驱动程序的所有配置选项都可以在 `spring.neo4j` 命名空间中访问。驱动程序 bean 提供了与 Neo4j 交互的命令式、异步和响应式方法。
与 Spring Data 和 Spring 平台或响应式事务管理器的集成始于 Neo4j Client。客户端是 SDN 的一部分,通过单独的启动器 `spring-boot-starter-data-neo4j` 进行配置。该启动器的配置命名空间是 `spring.data.neo4j`。
客户端与映射无关。它不知道您的域类,您负责将结果映射到适合您需求的对象。
下一个更高的抽象级别是 Neo4j 模板。它知道您的域,您可以使用它来查询任意域对象。在具有大量域类或自定义查询(您不希望为每个查询创建额外的存储库抽象)的情况下,模板非常方便。
最高的抽象级别是 Spring Data 存储库。
SDN 的所有抽象都以命令式和响应式两种方式出现。不建议在同一个应用程序中混合这两种编程风格。响应式基础架构需要 Neo4j 4.0+ 数据库。
在包级别
包 | 描述 |
---|---|
|
此包包含可用于应用程序特定、带注释的配置类的配置相关支持类。如果您不依赖 Spring Boot 的自动配置,则抽象基类很有用。该包提供了一些额外的注释,这些注释可以启用审计。 |
|
此包包含用于创建可执行查询的命令式或响应式客户端的核心基础结构。标记为 `@API(status = API.Status.STABLE)` 的包可以安全使用。核心包提供了对客户端和模板的命令式和响应式变体的访问。 |
|
提供 SDN 支持的一组简单类型。`Neo4jConversions` 允许引入额外的自定义转换器。 |
|
此包提供了一些可能对您的域有帮助的支持类,例如指示某些事务可以重试的谓词以及其他转换器和 ID 生成器。 |
|
包含将非托管 Neo4j 事务转换为 Spring 托管事务的核心基础结构。将命令式和响应式 `TransactionManager` 分别公开为 `Neo4jTransactionManager` 和 `ReactiveNeo4jTransactionManager`。 |
|
此包提供 Neo4j 命令式和响应式存储库 API。 |
|
Neo4j 特定存储库的配置基础结构,特别是用于启用命令式和响应式 Spring Data Neo4j 存储库的专用注释。 |
|
此包提供了一些公共支持类,用于构建自定义命令式和响应式 Spring Data Neo4j 存储库基类。支持类与 SDN 本身使用的类相同。 |