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

SDN がサポートする単純型のセットを提供します。Neo4jConversions を使用すると、追加のカスタムコンバーターを導入できます。

org.springframework.data.neo4j.core.support

このパッケージは、ドメインで役立つ可能性のあるいくつかのサポートクラスを提供します。たとえば、一部のトランザクションが再試行される可能性があることを示す述語や、追加のコンバーターや ID ジェネレーターなどです。

org.springframework.data.neo4j.core.transaction

アンマネージド Neo4j トランザクションを Spring マネージドトランザクションに変換するためのコアインフラストラクチャが含まれています。命令型とリアクティブの両方の TransactionManager を Neo4jTransactionManager および ReactiveNeo4jTransactionManager として公開します。

org.springframework.data.neo4j.repository

このパッケージは、Neo4j 命令型およびリアクティブリポジトリ API を提供します。

org.springframework.data.neo4j.repository.config

Neo4j 固有のリポジトリの構成インフラストラクチャ、特に命令型およびリアクティブな Spring Data Neo4j リポジトリを有効にする専用のアノテーション。

org.springframework.data.neo4j.repository.support

このパッケージは、カスタムの命令型およびリアクティブな Spring Data Neo4j リポジトリ基本クラスを構築するためのいくつかのパブリックサポートクラスを提供します。サポートクラスは、SDN 自体で使用されるクラスと同じです。