My Library Docs

Multi-root Sidebar

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의 mapping, collection naming과 reactive lifecycle을 MongoExecutionContext adapter로 연결합니다.


Spring Data MongoDB는 애플리케이션에서 유지합니다
build.gradle
text

코어 라이브러리는 Spring Data MongoDB에 직접 의존하지 않습니다. 기존 Spring 애플리케이션의 ReactiveMongoTemplate 설정을 사용하려면 application layer에서 MongoExecutionContext adapter를 제공합니다.

SpringReactiveMongoExecutionContext adapter
SpringReactiveMongoExecutionContext.java
java

실제 구현에서는 위 클래스에 필요한 Spring/MongoDB import를 추가합니다. 핵심은 entity read/write를 MongoConverter, collection 이름을 ReactiveMongoTemplate, session 시작을 대응하는 MongoClient에 연결하는 것입니다.

Resolver와 DSL Bean 등록
MongoTemplateNameResolver.java
java
ReactiveMongoDslConfiguration.java
java
Adapter에서 연결되는 범위

@Document / collection name

ReactiveMongoTemplate#getCollectionName(...)을 사용합니다.

@Id / @Field / custom conversions

entity ↔ Document 변환에 MongoConverter를 사용합니다.

Reactive auditing

beforePersist(...)ReactiveBeforeConvertCallback에 연결하면 save() 계열에서 reactive auditing callback이 적용됩니다.

ReactiveAfterSaveCallback

write 성공 뒤 afterPersist(...)에서 호출할 수 있습니다.

Spring QueryMapper

적용되지 않습니다. DSL String field path는 실제 MongoDB document field 이름 기준입니다.

Spring DataAccessException

자동 변환하지 않습니다. 실제 operation은 Reactive Streams Driver가 수행합니다.

@Field를 사용하는 경우
java

entity 저장/조회 conversion에는 Spring mapping이 적용되지만, DSL 조건의 String path는 Spring QueryMapper를 거치지 않습니다. 단 정확한 id path segment는 DSL 자체 규칙으로 _id로 정규화됩니다.

Spring transaction과 DSL transaction은 별도입니다
© 2026 Byeolnaerim. All rights reserved.소개개인정보처리방침