เอกสารในห้องสมุดของฉัน

แถบด้านข้างหลายราก

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 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
java
ReactiveMongoDslConfiguration.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
java

การแปลงการบันทึก/ค้นหา entity จะใช้การแมพปิ้งของ Spring แต่เส้นทาง String ของเงื่อนไข DSL จะไม่ผ่าน QueryMapper ของ Spring อย่างไรก็ตาม ส่วนที่แน่นอนของเส้นทาง id จะถูกทำให้เป็นมาตรฐานเป็น _id ตามกฎของ DSL เอง

ธุรกรรมของ Spring และธุรกรรมของ DSL แยกจากกัน