public class MongoDbMessageSource extends AbstractMessageSource<ObjectSE>
Query
の実行結果であるペイロードを持つ Message
を返す MessageSource
のインスタンス。expectSingleResult が false (デフォルト) の場合、MongoDb Query
は List
SE を返す MongoOperations.find(Query, Class)
メソッドを使用して実行されます。返された List
SE は、{ AbstractMessageSource.receive()
メソッドによって返される Message
のペイロードとして使用されます。空の List
SE は null として扱われるため、{ AbstractMessageSource.receive()
メソッドによって返される Message
はなくなります。expectSingleResult が true の場合、代わりに MongoOperations.findOne(Query, Class)
が使用され、メッセージペイロードはクエリから返される単一のオブジェクトになります。
IntegrationManagement.ManagementOverrides
EXPRESSION_PARSER, logger
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
コンストラクターと説明 |
---|
MongoDbMessageSource(MongoDatabaseFactory mongoDbFactory, Expression queryExpression) 提供された MongoDatabaseFactory および SpEL 式を使用してインスタンスを作成します。これは、MongoDb の「クエリ」文字列に解決される必要があります(https://www.mongodb.org/display/DOCS/Querying) を参照)。 |
MongoDbMessageSource(MongoOperations mongoTemplate, Expression queryExpression) 提供された MongoOperations および SpEL 式を使用してインスタンスを作成します。これは、Mongo の「クエリ」文字列に解決される必要があります(https://www.mongodb.org/display/DOCS/Querying) を参照)。 |
修飾子と型 | メソッドと説明 |
---|---|
protected ObjectSE | doReceive() Query を実行し、その結果をメッセージペイロードとして返します。 |
StringSE | getComponentType() |
protected void | onInit() |
void | setCollectionNameExpression(Expression collectionNameExpression) Query で使用されるコレクション名に解決される SpEL Expression を設定します。 |
void | setEntityClass(ClassSE<?> entityClass) MongoTemplate.find(Query, Class) または MongoTemplate.findOne(Query, Class) メソッドに渡される entityClass の型を設定できます。 |
void | setExpectSingleResult(boolean expectSingleResult) MongoTemplate で呼び出す 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 MongoDbMessageSource(MongoDatabaseFactory mongoDbFactory, Expression queryExpression)
MongoDatabaseFactory
と SpEL 式を使用してインスタンスを作成します。このインスタンスは、MongoDb の「クエリ」文字列に解決されます (https://www.mongodb.org/display/DOCS/Querying) を参照)。"queryExpression" は、AbstractMessageSource.receive()
メソッドが呼び出されるたびに評価されます。mongoDbFactory
- mongodb ファクトリ。queryExpression
- クエリ式。public MongoDbMessageSource(MongoOperations mongoTemplate, Expression queryExpression)
MongoOperations
と SpEL 式を使用してインスタンスを作成します。このインスタンスは、Mongo の「クエリ」文字列に解決されます (https://www.mongodb.org/display/DOCS/Querying) を参照)。MongoOperations
が完全に初期化され、使用できる状態にあることを前提としています。"queryExpression" は、AbstractMessageSource.receive()
メソッドが呼び出されるたびに評価されます。mongoTemplate
- mongo テンプレート。queryExpression
- クエリ式。public void setEntityClass(ClassSE<?> entityClass)
MongoTemplate.find(Query, Class)
または MongoTemplate.findOne(Query, Class)
メソッドに渡される entityClass の型を設定できます。デフォルトは DBObject
です。entityClass
- エンティティクラス。public void setExpectSingleResult(boolean expectSingleResult)
MongoTemplate
で呼び出す find * メソッドを管理できます。デフォルトは "false" です。これは、AbstractMessageSource.receive()
メソッドが MongoTemplate.find(Query, Class)
メソッドを使用することを意味します。'true' に設定すると、AbstractMessageSource.receive()
は MongoTemplate.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
を提供できます。このインスタンスが MongoDatabaseFactory
で構築された場合にのみ許可されます。mongoConverter
- mongo コンバーター。public StringSE getComponentType()
protected void onInit()
AbstractExpressionEvaluator
の onInit
protected ObjectSE doReceive()
Query
を実行し、その結果をメッセージペイロードとして返します。ペイロードは、entityClass
で識別された型のオブジェクトの要素を List
SE とするか、expectSingleResult
属性の値(デフォルトは 'false' )に基づいて entityClass
で識別された型の単一の要素を Message
とし、List
SE 型のペイロードを返すかのいずれかです。クエリで使用されるコレクション名は、MongoHeaders.COLLECTION_NAME
ヘッダーで指定されます。AbstractMessageSource<ObjectSE>
の doReceive