Spring Data Neo4j 的構建塊

概述

SDN 由可組合的構建塊組成。它構建在 Neo4j Java Driver 之上。Java driver 的例項透過 Spring Boot 的自動配置本身提供。Driver 的所有配置選項都可以在名稱空間 spring.neo4j 中訪問。Driver bean 提供命令式、非同步和響應式方法與 Neo4j 互動。

您可以在該 bean 上使用 driver 提供的所有事務方法,例如自動提交事務事務函式和非託管事務。請注意,這些事務與正在進行的 Spring 事務並非緊密關聯。

與 Spring Data 以及 Spring 的平臺或響應式事務管理器的整合始於 Neo4j Client。該 Client 是 SDN 的一部分,透過一個單獨的 starter spring-boot-starter-data-neo4j 進行配置。該 starter 的配置名稱空間是 spring.data.neo4j

該 Client 是對映無關的。它不瞭解您的領域類,您負責將結果對映到適合您需求的物件。

下一個更高層次的抽象是 Neo4j Template。它瞭解您的領域,您可以使用它來查詢任意領域物件。在領域類數量眾多或有自定義查詢且不想為每個查詢建立額外的 repository 抽象的場景中,template 非常有用。

最高層次的抽象是 Spring Data repository。

SDN 的所有抽象都提供了命令式和響應式風格。不建議在同一應用程式中混合使用這兩種程式設計風格。響應式基礎設施需要 Neo4j 4.0+ 資料庫。

image$sdn buildingblocks
圖 1. SDN 構建塊

Template 機制類似於其他儲存的 templates。有關其更多資訊,請參閱我們的常見問題。Neo4j Client 本身是 SDN 特有的。您可以在附錄中找到其文件。

在包層面

描述

org.springframework.data.neo4j.config

此包包含與配置相關的支援類,可用於應用程式特定的、帶註解的配置類。如果您不依賴 Spring Boot 的自動配置,抽象基類會很有幫助。此包提供了一些額外的註解來啟用審計。

org.springframework.data.neo4j.core

此包包含建立可執行查詢的命令式或響應式 Client 的核心基礎設施。標記為 @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 託管事務的核心基礎設施。將命令式和響應式 TransactionManager 作為 Neo4jTransactionManagerReactiveNeo4jTransactionManager 公開。

org.springframework.data.neo4j.repository

此包提供 Neo4j 命令式和響應式 repository API。

org.springframework.data.neo4j.repository.config

Neo4j 特定 repositories 的配置基礎設施,特別是用於啟用命令式和響應式 Spring Data Neo4j repositories 的專用註解。

org.springframework.data.neo4j.repository.support

此包提供了一些公共支援類,用於構建自定義命令式和響應式 Spring Data Neo4j repository 基類。這些支援類與 SDN 本身使用的類相同。