マイライブラリドキュメント

マルチルートサイドバー

flex-layout

  • Getting Started

  • Guides

  • Reference

typed-rx-http

  • Getting Started

  • Guides

  • Reference

global-rx-state

  • Getting Started

  • Guides

  • Reference

webflux-fe-dev-assistant

reactive-mongo-dsl

Spring Integration

Spring Data MongoDBをコア依存関係として取り込まずに、ReactiveMongoTemplateのマッピング、コレクション名付け、リアクティブライフサイクルをMongoExecutionContextアダプターに接続します。


Spring Data MongoDBはアプリケーションで維持されます
build.gradle
text

コアライブラリはSpring Data MongoDBに直接依存しません。既存のSpringアプリケーションのReactiveMongoTemplate設定を使用するには、アプリケーション層でMongoExecutionContextアダプターを提供します。

SpringReactiveMongoExecutionContextアダプター
SpringReactiveMongoExecutionContext.java
java

実際の実装では、上記のクラスに必要なSpring/MongoDBのインポートを追加します。重要なのは、エンティティの読み書きをMongoConverter、コレクション名をReactiveMongoTemplate、セッション開始を対応するMongoClientに接続することです。

ResolverとDSL Beanの登録
MongoTemplateNameResolver.java
java
ReactiveMongoDslConfiguration.java
java
アダプターで接続されるスコープ

@Document / コレクション名

ReactiveMongoTemplate#getCollectionName(...)を使用します。

@Id / @Field / カスタム変換

エンティティ ↔ Document 変換にMongoConverterを使用します。

リアクティブ監査

beforePersist(...)ReactiveBeforeConvertCallbackに接続すると、save()系列でリアクティブ監査コールバックが適用されます。

ReactiveAfterSaveCallback

書き込み成功後、afterPersist(...)で呼び出すことができます。

Spring QueryMapper

適用されません。DSL文字列フィールドパスは実際のMongoDBドキュメントフィールド名に基づいています。

Spring DataAccessException

自動変換しません。実際の操作はReactive Streams Driverが実行します。

@Fieldを使用する場合
java

エンティティの保存/取得変換にはSpringマッピングが適用されますが、DSL条件の文字列パスはSpring QueryMapperを通過しません。ただし、正確なidパスセグメントはDSL自体の規則により_idに正規化されます。

SpringトランザクションとDSLトランザクションは別々です
© 2026 Byeolnaerim. 無断転載を禁じます。紹介プライバシーポリシー