我的文档库

多根目录侧边栏

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

将 ReactiveMongoTemplate 的映射、集合命名和反应式生命周期与 MongoExecutionContext 适配器连接,而不引入 Spring Data MongoDB 作为核心依赖。


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 / 自定义转换

使用 MongoConverter 进行实体 ↔ Document 转换。

反应式审计

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. 保留所有权利.介绍隐私政策