アノテーションインターフェース JmsListener
destination()
の JMS メッセージリスナーのターゲットになるメソッドをマークするアノテーション。containerFactory()
は、JMS リスナーコンテナーの構築に使用する JmsListenerContainerFactory
を識別します。設定されていない場合、デフォルトのコンテナーファクトリは、Bean 名が jmsListenerContainerFactory
であると想定されます。ただし、構成を通じて明示的なデフォルトが指定されている場合を除きます。 カスタム DefaultJmsListenerContainerFactory
Bean の登録を検討してください。運用目的では、通常、タイムアウトと回復設定を微調整します。最も重要なことは、デフォルトの "AUTO_ACKNOWLEDGE" モードでは信頼性が保証されないため、信頼性が必要な場合は必ずトランザクションセッションを使用してください。
@JmsListener
アノテーションの処理は、JmsListenerAnnotationBeanPostProcessor
を登録することによって実行されます。これは手動で行うか、<jms:annotation-driven/>
要素または @EnableJms
アノテーションを使用して行うと便利です。
アノテーション付き JMS リスナーメソッドは、MessageMapping
が提供するものと同様の柔軟な署名を持つことができます。
- JMS セッションへのアクセスを取得する
Session
EE - 未加工の JMS メッセージにアクセスするための
Message
EE またはそのサブクラスの 1 つ - Spring のメッセージング抽象化対応を使用する
Message
@Payload
- 検証のサポートを含む、アノテーション付きメソッド引数@Header
-JmsHeaders
で定義された標準の JMS ヘッダーを含む、特定のヘッダー値を抽出するためのアノテーション付きメソッド引数@Headers
- すべてのヘッダーへのアクセスを取得するためにMap
SE にも割り当て可能でなければならないアノテーション付きメソッド引数- すべてのヘッダーへのアクセスを取得するための
MessageHeaders
引数 - すべてのメソッド引数に簡単にアクセスできる
MessageHeaderAccessor
またはJmsMessageHeaderAccessor
アノテーション付きメソッドには、void
以外の戻り値の型が含まれる場合があります。その場合、メソッド呼び出しの結果は、JMS 応答として、受信メッセージの JMSReplyTO
ヘッダーで定義された宛先に送信されます。このヘッダーが設定されていない場合は、@SendTo
をメソッド宣言に追加することにより、デフォルトの宛先を提供できます。
このアノテーションは、繰り返し可能なSEアノテーションとして使用できます。
このアノテーションをメタアノテーションとして使用して、属性をオーバーライドしたカスタム合成アノテーションを作成できます。
- 導入:
- 4.1
- 作成者:
- Stephane Nicoll, Sam Brannen
- 関連事項:
必須定数のサマリー
オプション要素のサマリー
修飾子と型オプションの要素説明リスナーの同時実行制限(ある場合)。このエンドポイントの提供を担当するメッセージリスナーコンテナーの作成に使用するJmsListenerContainerFactory
の Bean 名。このエンドポイントを管理するコンテナーの一意の識別子。JMS メッセージセレクター式(存在する場合)。永続サブスクリプションの名前(ある場合)。
要素の詳細
destination
StringSE destinationこのリスナーの宛先名。コンテナー全体のDestinationResolver
戦略によって解決されます。
id
StringSE idこのエンドポイントを管理するコンテナーの一意の識別子。何も指定されていない場合は、自動生成されたものが提供されます。
- デフォルト:
- ""
containerFactory
StringSE containerFactoryこのエンドポイントの提供を担当するメッセージリスナーコンテナーの作成に使用するJmsListenerContainerFactory
の Bean 名。指定しない場合、デフォルトのコンテナーファクトリが使用されます。
- デフォルト:
- ""
subscription
StringSE subscription永続サブスクリプションの名前(ある場合)。Spring Framework 5.3.26 の時点で、明示的なサブスクリプション名が指定されていない場合、アノテーション付きリスナーメソッドの完全修飾名に基づいてデフォルトのサブスクリプション名が生成されます。— たとえば、
org.example.jms.ProductListener
クラスのprocessRequest(...)
リスナーメソッドの場合は"org.example.jms.ProductListener.processRequest"
です。- デフォルト:
- ""
selector
StringSE selectorJMS メッセージセレクター式(存在する場合)。セレクター式の詳細な定義については、JMS 仕様を参照してください。
- デフォルト:
- ""
concurrency
StringSE concurrencyリスナーの同時実行制限(ある場合)。リスナーコンテナーの作成に使用されるコンテナーファクトリによって定義された値をオーバーライドします。同時実行制限は、「下位 - 上位」の文字列にすることができます。たとえば、"5-10" — または単純な上限文字列 — たとえば、"10" の場合、下限は 1 になります。
基礎となるコンテナーがすべての機能をサポートする場合とサポートしない場合があることに注意してください。たとえば、スケーリングできない場合があります。その場合、上限のみが使用されます。
- デフォルト:
- ""