This module provides a MongoDB supplier that can be reused and composed in other applications.
The Supplier
uses the MongoDBMessageSource
from Spring Integration.
MongoDBSupplier
is implemented as a java.util.function.Supplier
.
When you have use-cases such as periodical execution of querying MongoDB, based on some external trigger such as a REST endpoint call for example, then you can use this Supplier
to query.
The MongoDBSupplierConfiguration
auto-configuration provides the following bean:
mongoDBSupplier
You can inject it as Supplier<Message<?>
when you are not splitting the rows.
If you are splitting the output, you need to inject this as Supplier<Flux<Message<?>>>
.
You can use mongoDBSupplier
as a qualifier when injecting.
Once injected, you can use the get
method of the Supplier
to invoke it.
In the case of splitting you get a Flux
which you have to subscribe in your applications.
All configuration properties are prefixed with mongodb.supplier
.
For more information on the various options available, please see MongoDBSupplierProperties.
The queryExpression
and updateExpression
options may use Spring Data MongoDB query DSL from the org.springframework.data.mongodb.core.query
, such as Query
and Update
factories respectively.
The updateExpression
is optional and ca use an item from query result as a root evaluation object to extract some values to update from just fetched data.
A ComponentCustomizer<MongoDbMessageSource>
bean can be added in the target project to provide any custom options for the MongoDbMessageSource
configuration used by the mongodbSupplier
.
See this test suite for the various ways, this supplier is used.
See this README where this supplier is used to create a Spring Cloud Stream application where it makes a MongoDB Source.