Spring Integration
Connecte le mapping, la nomination de collection et le cycle de vie réactif de ReactiveMongoTemplate à l'adaptateur MongoExecutionContext sans tirer Spring Data MongoDB comme dépendance principale.
Spring Data MongoDB est maintenu par l'application.
build.gradle
textLa bibliothèque principale ne dépend pas directement de Spring Data MongoDB. Pour utiliser la configuration ReactiveMongoTemplate d'une application Spring existante, l'adaptateur MongoExecutionContext est fourni au niveau de l'application.
Adaptateur SpringReactiveMongoExecutionContext
SpringReactiveMongoExecutionContext.java
javaDans l'implémentation réelle, ajoutez les importations Spring/MongoDB nécessaires à la classe ci-dessus. L'essentiel est de connecter la lecture/écriture d'entité à MongoConverter, le nom de la collection à ReactiveMongoTemplate, et le démarrage de session au MongoClient correspondant.
Enregistrement de Resolver et de DSL Bean
MongoTemplateNameResolver.java
javaReactiveMongoDslConfiguration.java
javaPortée connectée dans l'adaptateur
@Document / nom de collection
Utilise ReactiveMongoTemplate#getCollectionName(...).
@Id / @Field / conversions personnalisées
Utilise MongoConverter pour la conversion entre entité ↔ Document.
Audit réactif
En connectant beforePersist(...) à ReactiveBeforeConvertCallback, le callback d'audit réactif est appliqué dans la série save().
ReactiveAfterSaveCallback
Peut être appelé dans afterPersist(...) après un succès d'écriture.
Spring QueryMapper
Ne s'applique pas. Le chemin de champ de chaîne DSL est basé sur le nom de champ de document MongoDB réel.
Spring DataAccessException
Ne convertit pas automatiquement. L'opération réelle est effectuée par le Reactive Streams Driver.
Lors de l'utilisation de @Field
Le mapping Spring s'applique à la conversion de sauvegarde/recherche d'entité, mais le chemin de chaîne des conditions DSL ne passe pas par QueryMapper de Spring. Cependant, le segment de chemin id exact est normalisé en _id selon les règles DSL.