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.
You can import the MongoDBSupplierConfiguration
in the application and then inject 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.