Spring Integration
Menghubungkan pemetaan, penamaan koleksi, dan siklus hidup reaktif dari ReactiveMongoTemplate tanpa menarik Spring Data MongoDB sebagai ketergantungan inti ke dalam MongoExecutionContext adapter.
Spring Data MongoDB dikelola oleh aplikasi
build.gradle
textPerpustakaan inti tidak bergantung langsung pada Spring Data MongoDB. Untuk menggunakan pengaturan ReactiveMongoTemplate dari aplikasi Spring yang ada, lapisan aplikasi menyediakan adapter MongoExecutionContext.
Adapter SpringReactiveMongoExecutionContext
SpringReactiveMongoExecutionContext.java
javaDalam implementasi nyata, tambahkan impor Spring/MongoDB yang diperlukan ke kelas di atas. Intinya adalah menghubungkan pembacaan/penulisan entitas ke MongoConverter, nama koleksi ke ReactiveMongoTemplate, dan memulai sesi ke MongoClient yang sesuai.
Pendaftaran Resolver dan DSL Bean
MongoTemplateNameResolver.java
javaReactiveMongoDslConfiguration.java
javaRuang lingkup yang terhubung di Adapter
@Document / nama koleksi
Gunakan ReactiveMongoTemplate#getCollectionName(...).
@Id / @Field / konversi kustom
Gunakan MongoConverter untuk konversi antara entitas ↔ Document.
Audit reaktif
Menghubungkan beforePersist(...) ke ReactiveBeforeConvertCallback akan menerapkan callback audit reaktif pada rangkaian save().
ReactiveAfterSaveCallback
Dapat dipanggil di afterPersist(...) setelah penulisan berhasil.
Spring QueryMapper
Tidak berlaku. Jalur field String DSL berdasarkan nama field dokumen MongoDB yang sebenarnya.
Spring DataAccessException
Tidak melakukan konversi otomatis. Operasi nyata dilakukan oleh Reactive Streams Driver.
Jika menggunakan @Field
Mapping Spring diterapkan pada konversi penyimpanan/pencarian entitas, tetapi jalur String dari kondisi DSL tidak melewati QueryMapper Spring. Namun, segmen jalur id yang tepat dinormalisasi menjadi _id berdasarkan aturan DSL itu sendiri.