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+ データベースが必要です。
パッケージレベル
パッケージ | 説明 |
---|---|
| このパッケージには、アプリケーション固有のアノテーション付き構成クラスに使用できる構成関連のサポートクラスが含まれています。Spring Boot の自動構成に依存しない場合は、抽象基本クラスが役立ちます。このパッケージには、監査を可能にする追加のアノテーションがいくつか用意されています。 |
| このパッケージには、クエリを実行できる命令型またはリアクティブクライアントを作成するためのコアインフラストラクチャが含まれています。 |
| SDN がサポートする単純型のセットを提供します。 |
| このパッケージは、ドメインで役立つ可能性のあるいくつかのサポートクラスを提供します。たとえば、一部のトランザクションが再試行される可能性があることを示す述語や、追加のコンバーターや ID ジェネレーターなどです。 |
| アンマネージド Neo4j トランザクションを Spring マネージドトランザクションに変換するためのコアインフラストラクチャが含まれています。命令型とリアクティブの両方の |
| このパッケージは、Neo4j 命令型およびリアクティブリポジトリ API を提供します。 |
| Neo4j 固有のリポジトリの構成インフラストラクチャ、特に命令型およびリアクティブな Spring Data Neo4j リポジトリを有効にする専用のアノテーション。 |
| このパッケージは、カスタムの命令型およびリアクティブな Spring Data Neo4j リポジトリ基本クラスを構築するためのいくつかのパブリックサポートクラスを提供します。サポートクラスは、SDN 自体で使用されるクラスと同じです。 |