Skip to content

Latest commit

 

History

History
39 lines (23 loc) · 2.18 KB

File metadata and controls

39 lines (23 loc) · 2.18 KB

MongoDB Supplier

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.

Beans for injection

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.

Configuration Options

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.

Tests

See this test suite for the various ways, this supplier is used.

Other usage

See this README where this supplier is used to create a Spring Cloud Stream application where it makes a MongoDB Source.