Class ReactiveMongoDbMessageSource
java.lang.Object
org.springframework.integration.util.AbstractExpressionEvaluator
org.springframework.integration.endpoint.AbstractMessageSource<T>
org.springframework.integration.mongodb.inbound.AbstractMongoDbMessageSource<org.reactivestreams.Publisher<?>>
org.springframework.integration.mongodb.inbound.ReactiveMongoDbMessageSource
- All Implemented Interfaces:
Aware
,BeanFactoryAware
,BeanNameAware
,DisposableBean
,InitializingBean
,ApplicationContextAware
,MessageSource<org.reactivestreams.Publisher<?>>
,IntegrationPattern
,NamedComponent
,IntegrationInboundManagement
,IntegrationManagement
public class ReactiveMongoDbMessageSource
extends AbstractMongoDbMessageSource<org.reactivestreams.Publisher<?>>
An instance of
MessageSource
which returns
a Message
with a payload which is the result of
execution of a Query
. When expectSingleResult
is false (default), the MongoDb
Query
is executed using ReactiveMongoOperations.find(Query, Class)
method which
returns a Flux
.
The returned Flux
will be used as the payload of the
Message
returned by the AbstractMessageSource.receive()
method.
When expectSingleResult
is true, the ReactiveMongoOperations.findOne(Query, Class)
is
used instead, and the message payload will be a Mono
for the single object returned from the query.
- Since:
- 5.3
- Author:
- David Turanski, Artem Bilan
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
IntegrationManagement.ManagementOverrides
-
Field Summary
Fields inherited from class org.springframework.integration.mongodb.inbound.AbstractMongoDbMessageSource
queryExpression
Fields inherited from class org.springframework.integration.util.AbstractExpressionEvaluator
EXPRESSION_PARSER, logger
Fields inherited from interface org.springframework.integration.support.management.IntegrationManagement
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
-
Constructor Summary
ConstructorDescriptionReactiveMongoDbMessageSource
(ReactiveMongoOperations reactiveMongoTemplate, Expression queryExpression) Create an instance with the providedReactiveMongoOperations
and SpEL expression which should resolve to a Mongo 'query' string (see https://www.mongodb.org/display/DOCS/Querying).ReactiveMongoDbMessageSource
(ReactiveMongoDatabaseFactory reactiveMongoDatabaseFactory, Expression queryExpression) Create an instance with the providedReactiveMongoDatabaseFactory
and SpEL expression which should resolve to a MongoDb 'query' string (see https://www.mongodb.org/display/DOCS/Querying). -
Method Summary
Methods inherited from class org.springframework.integration.mongodb.inbound.AbstractMongoDbMessageSource
evaluateCollectionNameExpression, evaluateQueryExpression, evaluateUpdateExpression, getApplicationContext, getByIdInQuery, getCollectionNameExpression, getEntityClass, getMongoConverter, getUpdateExpression, idForEntity, isExpectSingleResult, isInitialized, setApplicationContext, setCollectionNameExpression, setEntityClass, setExpectSingleResult, setInitialized, setMongoConverter, setUpdateExpression
Methods inherited from class org.springframework.integration.endpoint.AbstractMessageSource
buildMessage, destroy, getBeanName, getComponentName, getManagedName, getManagedType, getOverrides, isLoggingEnabled, receive, registerMetricsCaptor, setBeanName, setHeaderExpressions, setLoggingEnabled, setManagedName, setManagedType
Methods inherited from class org.springframework.integration.util.AbstractExpressionEvaluator
afterPropertiesSet, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, getBeanFactory, getEvaluationContext, getEvaluationContext, getMessageBuilderFactory, setBeanFactory, setConversionService, setSimpleEvaluationContext
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.integration.support.management.IntegrationManagement
getThisAs, isObserved, registerObservationRegistry
Methods inherited from interface org.springframework.integration.core.MessageSource
getIntegrationPatternType
-
Constructor Details
-
ReactiveMongoDbMessageSource
public ReactiveMongoDbMessageSource(ReactiveMongoDatabaseFactory reactiveMongoDatabaseFactory, Expression queryExpression) Create an instance with the providedReactiveMongoDatabaseFactory
and SpEL expression which should resolve to a MongoDb 'query' string (see https://www.mongodb.org/display/DOCS/Querying). The 'queryExpression' will be evaluated on every call to theAbstractMessageSource.receive()
method.- Parameters:
reactiveMongoDatabaseFactory
- The reactiveMongoDatabaseFactory factory.queryExpression
- The query expression.
-
ReactiveMongoDbMessageSource
public ReactiveMongoDbMessageSource(ReactiveMongoOperations reactiveMongoTemplate, Expression queryExpression) Create an instance with the providedReactiveMongoOperations
and SpEL expression which should resolve to a Mongo 'query' string (see https://www.mongodb.org/display/DOCS/Querying). It assumes that theReactiveMongoOperations
is fully initialized and ready to be used. The 'queryExpression' will be evaluated on every call to theAbstractMessageSource.receive()
method.- Parameters:
reactiveMongoTemplate
- The reactive Mongo template.queryExpression
- The query expression.
-
-
Method Details
-
getComponentType
-
onInit
protected void onInit()- Overrides:
onInit
in classAbstractMongoDbMessageSource<org.reactivestreams.Publisher<?>>
-
doReceive
Execute aQuery
returning its results as the Message payload. The payload can be eitherFlux
orMono
of objects of type identified byAbstractMongoDbMessageSource.getEntityClass()
, or a single element of type identified byAbstractMongoDbMessageSource.getEntityClass()
based on the value ofAbstractMongoDbMessageSource.isExpectSingleResult()
attribute which defaults to 'false' resultingMessage
with payload of typeFlux
. The collection name used in the query will be provided in theMongoHeaders.COLLECTION_NAME
header.- Specified by:
doReceive
in classAbstractMessageSource<org.reactivestreams.Publisher<?>>
- Returns:
- The value returned.
-