Spring Integration
เชื่อมโยงการแมพปิ้ง, การตั้งชื่อคอลเลกชัน และวงจรชีวิตเชิงปฏิกิริยาของ ReactiveMongoTemplate กับ MongoExecutionContext adapter โดยไม่ดึง Spring Data MongoDB มาเป็นการพึ่งพาหลัก
Spring Data MongoDB จะถูกดูแลในแอปพลิเคชัน
build.gradle
textไลบรารีหลักไม่พึ่งพา Spring Data MongoDB โดยตรง หากต้องการใช้การตั้งค่า ReactiveMongoTemplate ของแอปพลิเคชัน Spring ที่มีอยู่ จะต้องมี MongoExecutionContext adapter ในเลเยอร์แอปพลิเคชัน
SpringReactiveMongoExecutionContext adapter
SpringReactiveMongoExecutionContext.java
javaในการใช้งานจริงจะต้องเพิ่มการนำเข้า Spring/MongoDB ที่จำเป็นในคลาสข้างต้น จุดสำคัญคือการเชื่อมโยงการอ่าน/เขียน entity กับ MongoConverter, ชื่อคอลเลกชันกับ ReactiveMongoTemplate, และการเริ่มต้นเซสชันกับ MongoClient ที่เกี่ยวข้อง
การลงทะเบียน Resolver และ DSL Bean
MongoTemplateNameResolver.java
javaReactiveMongoDslConfiguration.java
javaขอบเขตที่เชื่อมต่อใน Adapter
@Document / ชื่อคอลเลกชัน
ใช้ ReactiveMongoTemplate#getCollectionName(...)
@Id / @Field / การแปลงแบบกำหนดเอง
ใช้ MongoConverter ในการแปลง entity ↔ Document
การตรวจสอบเชิงปฏิกิริยา
เชื่อมโยง beforePersist(...) กับ ReactiveBeforeConvertCallback จะทำให้มีการใช้ callback การตรวจสอบเชิงปฏิกิริยาในกลุ่ม save()
ReactiveAfterSaveCallback
สามารถเรียกใช้ได้ใน afterPersist(...) หลังจากการเขียนสำเร็จ
Spring QueryMapper
ไม่ถูกนำไปใช้ เส้นทางฟิลด์ DSL String จะอิงตามชื่อฟิลด์เอกสาร MongoDB จริง
Spring DataAccessException
ไม่ทำการแปลงอัตโนมัติ การดำเนินการจริงจะดำเนินการโดย Reactive Streams Driver
เมื่อใช้ @Field
การแปลงการบันทึก/ค้นหา entity จะใช้การแมพปิ้งของ Spring แต่เส้นทาง String ของเงื่อนไข DSL จะไม่ผ่าน QueryMapper ของ Spring อย่างไรก็ตาม ส่วนที่แน่นอนของเส้นทาง id จะถูกทำให้เป็นมาตรฐานเป็น _id ตามกฎของ DSL เอง