Spring Integration
Conecta o mapeamento, nomeação de coleção e ciclo de vida reativo do ReactiveMongoTemplate ao adaptador MongoExecutionContext sem trazer o Spring Data MongoDB como dependência principal.
O Spring Data MongoDB é mantido pela aplicação
build.gradle
textA biblioteca principal não depende diretamente do Spring Data MongoDB. Para usar a configuração do ReactiveMongoTemplate de uma aplicação Spring existente, fornece-se o adaptador MongoExecutionContext na camada de aplicação.
Adaptador SpringReactiveMongoExecutionContext
SpringReactiveMongoExecutionContext.java
javaNa implementação real, adicione as importações necessárias do Spring/MongoDB à classe acima. O essencial é conectar a leitura/escrita de entidades ao MongoConverter, o nome da coleção ao ReactiveMongoTemplate e o início da sessão ao MongoClient correspondente.
Registro de Resolver e Bean DSL
MongoTemplateNameResolver.java
javaReactiveMongoDslConfiguration.java
javaEscopo conectado no adaptador
@Document / nome da coleção
Usa ReactiveMongoTemplate#getCollectionName(...).
@Id / @Field / conversões personalizadas
Usa MongoConverter para conversão entre entity ↔ Document.
Auditoria reativa
Conectar beforePersist(...) ao ReactiveBeforeConvertCallback aplica o callback de auditoria reativa na série save().
ReactiveAfterSaveCallback
Pode ser chamado em afterPersist(...) após a escrita bem-sucedida.
Spring QueryMapper
Não se aplica. O caminho do campo String DSL é baseado no nome do campo do documento MongoDB real.
Spring DataAccessException
Não realiza conversão automática. A operação real é realizada pelo Reactive Streams Driver.
Quando se usa @Field
A conversão de armazenamento/consulta de entity aplica o mapeamento do Spring, mas o caminho String da condição DSL não passa pelo QueryMapper do Spring. No entanto, o segmento de caminho id exato é normalizado para _id de acordo com as regras do próprio DSL.