@TargetSE(valueSE={TYPESE,METHODSE}) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE public @interface MessageMapping
patterns
をメッセージから抽出された宛先に一致させることにより、Message
をメッセージ処理メソッドにマッピングするためのアノテーション。アノテーションは、すべてのクラスメソッドでパターンプレフィックスを宣言する方法として、型レベルでもサポートされています。@MessageMapping
メソッドは、次の引数をサポートしています。
@Payload
メソッド引数。メッセージのペイロードを抽出し、宣言されたターゲット型にデシリアライズします。@Payload
引数には、@Validated
などの検証アノテーションが付けられ、JSR-303 検証が適用されます。アノテーションは、他の方法では処理されない引数に対してデフォルトで想定されるため、存在する必要はありません。@DestinationVariable
メソッド引数。/hotels/{hotel}
必要に応じて、変数値を String から宣言されたメソッド引数型に変換することもできます。Converter
を適用して、値を宣言されたターゲット型に変換する @Header
メソッド引数。Map
SE にも割り当て可能な @Headers
メソッド引数。MessageHeaders
メソッド引数。MessageHeaderAccessor
メソッド引数。STOMP over WebSocket のような一部の処理シナリオでは、これは SimpMessageHeaderAccessor
などの特殊化である場合もあります。Message<T>
。Principal
SE メソッド引数は、WebSocket を介した STOMP などの一部の処理シナリオでサポートされています。認証されたユーザーを反映します。戻り値の処理は、処理シナリオによって異なります。
@SendTo
または @SendToUser
アノテーションで指定されたカスタム宛先に送信されます。 このアノテーションの専門分野には、@SubscribeMapping
(例: STOMP サブスクリプション)および @ConnectMapping
(例: RSocket 接続)が含まれます。どちらもプライマリマッピングをさらに絞り込み、メッセージ型と照合します。両方を、共通のパターンプレフィックスを宣言する型レベルの @MessageMapping
と組み合わせることができます。
さまざまなコンテキストでのこのアノテーションの使用の詳細については、Spring Framework リファレンスの以下のセクションを参照してください。
注 : コントローラーインターフェース(AOP プロキシなど)を使用する場合、@MessageMapping
や @SubscribeMapping
などのすべてのマッピングアノテーションを、実装クラスではなくコントローラーインターフェースに一貫して配置するようにしてください。
SimpAnnotationMethodMessageHandler
, RSocketMessageHandler
public abstract StringSE[] value
STOMP over WebSocket メッセージの場合、これは AntPathMatcher
-style パターンがメッセージの STOMP 宛先と照合されます。
RSocket の場合、これは AntPathMatcher
または PathPattern
ベースのパターンであり、設定に応じて、ストリームリクエストのルートに一致します。
パターンが設定されていない場合、マッピングはすべての宛先に一致します。