Spring Data Neo4j の構成要素

概要

SDN は、構成可能なビルドブロックで構成されます。Neo4j Java ドライバー [GitHub] (英語) 上に構築されています。Java ドライバーのインスタンスは、Spring Boot の自動構成自体を通じて提供されます。ドライバーのすべての構成オプションは、ネームスペース spring.neo4j でアクセスできます。ドライバー Bean は、Neo4j と対話するための命令的、非同期、リアクティブなメソッドを提供します。

自動コミットトランザクション (英語) トランザクション関数 (英語) 、アンマネージトランザクションなど、ドライバーが Bean で提供するすべてのトランザクションメソッドを使用できます。これらのトランザクションは、進行中の Spring トランザクションと密接ではないことに注意してください。

Spring Data および Spring のプラットフォームまたはリアクティブトランザクションマネージャーとの統合は、Neo4j クライアントから始まります。クライアントは SDN の一部であり、別のスターター spring-boot-starter-data-neo4j を通じて構成されます。そのスターターの構成名前空間は spring.data.neo4j です。

クライアントはマッピングに依存しません。ドメインクラスについては認識されないため、結果をニーズに合ったオブジェクトにマッピングするのはユーザーの責任です。

次に高い抽象レベルは Neo4j テンプレートです。これはドメインを認識しているため、それを使用して任意のドメインオブジェクトをクエリできます。このテンプレートは、それぞれ追加のリポジトリ抽象化を作成したくない、多数のドメインクラスまたはカスタムクエリがあるシナリオで便利です。

最高レベルの抽象化は Spring Data リポジトリです。

SDN のすべての抽象化は、命令型とリアクティブ型の両方の形式で行われます。同じアプリケーション内で両方のプログラミングスタイルを混在させることはお勧めできません。リアクティブインフラストラクチャには Neo4j 4.0+ データベースが必要です。

image$sdn buildingblocks
図 1: SDN の構成要素

テンプレートのメカニズムは他のストアのテンプレートと似ています。詳細については、FAQ を参照してください。Neo4j クライアント自体は 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 リポジトリベースクラスの構築