Tài liệu của tôi

Thanh bên đa gốc

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

Kết nối mapping, đặt tên collection và vòng đời reactive của ReactiveMongoTemplate mà không kéo Spring Data MongoDB vào phụ thuộc chính.


Spring Data MongoDB được duy trì trong ứng dụng
build.gradle
text

Thư viện chính không phụ thuộc trực tiếp vào Spring Data MongoDB. Để sử dụng cấu hình ReactiveMongoTemplate của ứng dụng Spring hiện có, cung cấp adapter MongoExecutionContext ở lớp ứng dụng.

Adapter SpringReactiveMongoExecutionContext
SpringReactiveMongoExecutionContext.java
java

Trong triển khai thực tế, thêm các import Spring/MongoDB cần thiết vào lớp trên. Điều cốt lõi là kết nối việc đọc/ghi entity với MongoConverter, tên collection với ReactiveMongoTemplate, và khởi động phiên với MongoClient tương ứng.

Đăng ký Resolver và DSL Bean
MongoTemplateNameResolver.java
java
ReactiveMongoDslConfiguration.java
java
Phạm vi kết nối từ Adapter

@Document / tên collection

Sử dụng ReactiveMongoTemplate#getCollectionName(...).

@Id / @Field / chuyển đổi tùy chỉnh

Sử dụng MongoConverter để chuyển đổi giữa entity và Document.

Kiểm toán reactive

Kết nối beforePersist(...) với ReactiveBeforeConvertCallback để áp dụng callback kiểm toán reactive trong chuỗi save().

ReactiveAfterSaveCallback

Có thể gọi trong afterPersist(...) sau khi ghi thành công.

Spring QueryMapper

Không áp dụng. Đường dẫn trường DSL String dựa trên tên trường tài liệu MongoDB thực tế.

Spring DataAccessException

Không tự động chuyển đổi. Thao tác thực tế được thực hiện bởi Reactive Streams Driver.

Khi sử dụng @Field
java

Mapping Spring được áp dụng cho việc lưu/truy vấn entity, nhưng đường dẫn String của điều kiện DSL không đi qua QueryMapper của Spring. Tuy nhiên, đoạn đường dẫn id chính xác được chuẩn hóa thành _id theo quy tắc của DSL.

Giao dịch Spring và giao dịch DSL là riêng biệt.
© 2026 Byeolnaerim. Bảo lưu mọi quyền.Giới thiệuChính sách xử lý thông tin cá nhân