public class ReactiveMongoDbMessageSource extends AbstractMessageSource<org.reactivestreams.Publisher<?>> implements ApplicationContextAware
Query
の実行の結果であるペイロードを含む Message
を返す MessageSource
のインスタンス。expectSingleResult
が false(デフォルト)の場合、MongoDb Query
は、Flux
を返す ReactiveMongoOperations.find(Query, Class)
メソッドを使用して実行されます。返された Flux
は、AbstractMessageSource.receive()
メソッドによって返される Message
のペイロードとして使用されます。expectSingleResult
が true の場合、代わりに ReactiveMongoOperations.findOne(Query, Class)
が使用され、メッセージペイロードはクエリから返された単一オブジェクトの Mono
になります。
IntegrationManagement.ManagementOverrides
EXPRESSION_PARSER, logger
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
コンストラクターと説明 |
---|
ReactiveMongoDbMessageSource(ReactiveMongoDatabaseFactory reactiveMongoDatabaseFactory, Expression queryExpression) 提供された ReactiveMongoDatabaseFactory および SpEL 式を使用してインスタンスを作成します。これは、MongoDb の「クエリ」文字列に解決されます(https://www.mongodb.org/display/DOCS/Querying) を参照)。 |
ReactiveMongoDbMessageSource(ReactiveMongoOperations reactiveMongoTemplate, Expression queryExpression) 提供された ReactiveMongoOperations および SpEL 式を使用してインスタンスを作成します。これは、Mongo の「クエリ」文字列に解決されます(https://www.mongodb.org/display/DOCS/Querying) を参照)。 |
修飾子と型 | メソッドと説明 |
---|---|
ObjectSE | doReceive() Query を実行して、その結果をメッセージペイロードとして返します。 |
StringSE | getComponentType() |
protected void | onInit() |
void | setApplicationContext(ApplicationContext applicationContext) |
void | setCollectionNameExpression(Expression collectionNameExpression) Query で使用されるコレクション名に解決される SpEL Expression を設定します。 |
void | setEntityClass(ClassSE<?> entityClass) ReactiveMongoTemplate.find(Query, Class) または ReactiveMongoTemplate.findOne(Query, Class) メソッドに渡される entityClass の型を設定できます。 |
void | setExpectSingleResult(boolean expectSingleResult) ReactiveMongoTemplate で呼び出す find * メソッドを管理できます。 |
void | setMongoConverter(MongoConverter mongoConverter) MongoDb から読み取られたデータの逆直列化を支援するために使用されるカスタム MongoConverter を提供できるようにします。 |
buildMessage, destroy, getBeanName, getComponentName, getManagedName, getManagedType, getOverrides, isLoggingEnabled, receive, registerMetricsCaptor, setBeanName, setHeaderExpressions, setLoggingEnabled, setManagedName, setManagedType
afterPropertiesSet, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, evaluateExpression, getBeanFactory, getEvaluationContext, getEvaluationContext, getMessageBuilderFactory, setBeanFactory, setConversionService
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
getIntegrationPatternType
getThisAs
public ReactiveMongoDbMessageSource(ReactiveMongoDatabaseFactory reactiveMongoDatabaseFactory, Expression queryExpression)
ReactiveMongoDatabaseFactory
と SpEL 式を使用してインスタンスを作成します。これは、MongoDb の「クエリ」文字列に解決される必要があります (https://www.mongodb.org/display/DOCS/Querying) を参照)。"queryExpression" は、AbstractMessageSource.receive()
メソッドへの呼び出しごとに評価されます。reactiveMongoDatabaseFactory
- reactiveMongoDatabaseFactory ファクトリ。queryExpression
- クエリ式。public ReactiveMongoDbMessageSource(ReactiveMongoOperations reactiveMongoTemplate, Expression queryExpression)
ReactiveMongoOperations
と SpEL 式を使用してインスタンスを作成します。このインスタンスは、Mongo の「クエリ」文字列に解決されます (https://www.mongodb.org/display/DOCS/Querying) を参照)。ReactiveMongoOperations
が完全に初期化され、使用できる状態にあることを前提としています。"queryExpression" は、AbstractMessageSource.receive()
メソッドが呼び出されるたびに評価されます。reactiveMongoTemplate
- リアクティブ Mongo テンプレート。queryExpression
- クエリ式。public void setEntityClass(ClassSE<?> entityClass)
ReactiveMongoTemplate.find(Query, Class)
または ReactiveMongoTemplate.findOne(Query, Class)
メソッドに渡される entityClass の型を設定できます。デフォルトは DBObject
です。entityClass
- エンティティクラス。public void setExpectSingleResult(boolean expectSingleResult)
ReactiveMongoTemplate
で呼び出す find * メソッドを管理できます。デフォルトは "false" です。これは、AbstractMessageSource.receive()
メソッドが ReactiveMongoTemplate.find(Query, Class)
メソッドを使用することを意味します。'true' に設定すると、AbstractMessageSource.receive()
は ReactiveMongoTemplate.findOne(Query, Class)
を使用し、返される Message
のペイロードは、リストではなく entityClass
で識別される型の返されるターゲットオブジェクトになります。expectSingleResult
- 単一の結果が期待される場合は true。public void setCollectionNameExpression(Expression collectionNameExpression)
Query
で使用されるコレクション名に解決される SpEL Expression
を設定します。結果のコレクション名は、MongoHeaders.COLLECTION_NAME
ヘッダーに含まれます。collectionNameExpression
- コレクション名の式。public void setMongoConverter(MongoConverter mongoConverter)
MongoConverter
を提供できるようにします。このインスタンスが ReactiveMongoDatabaseFactory
で構築された場合にのみ許可されます。mongoConverter
- mongo コンバーター。public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
ApplicationContextAware
の setApplicationContext
BeansException
public StringSE getComponentType()
NamedComponent
の getComponentType
protected void onInit()
AbstractExpressionEvaluator
の onInit
public ObjectSE doReceive()
Query
を実行して、その結果をメッセージペイロードとして返します。ペイロードは、entityClass
によって識別される型のオブジェクトの Flux
または Mono
、または expectSingleResult
属性の値に基づいて entityClass
によって識別される型の単一要素のいずれかです。デフォルトは "false" であり、結果として Message
は型 Flux
のペイロードになります。クエリで使用されるコレクション名は、MongoHeaders.COLLECTION_NAME
ヘッダーで提供されます。AbstractMessageSource<org.reactivestreams.Publisher<?>>
の doReceive