@TargetSE(valueSE={TYPESE,METHODSE}) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE public @interface MessageMapping
Message をメッセージ処理メソッドにマッピングするためのアノテーション。このアノテーションは、型レベルでも使用できます。この場合、メソッドレベルの @SubscribeMapping アノテーションを含むすべてのメソッドレベルのアノテーションに共通の宛先プレフィックスまたはパターンを定義します。このアノテーションが付けられたハンドラーメソッドは、柔軟なシグネチャーを持つことができます。これらは、次の型の引数を任意の順序で持つことができます。
Message を使用して、処理中の完全なメッセージにアクセスできます。Payload - メッセージのペイロードを抽出し、オプションで MessageConverter を使用して変換するアノテーション付きメソッド引数。アノテーションが付けられていないメソッド引数にはデフォルトで想定されているため、アノテーションの存在は必要ありません。検証アノテーション(Validated など)でアノテーションが付けられたペイロードメソッド引数は、JSR-303 検証の対象になります。Header - 特定のヘッダー値を抽出するためのアノテーション付きメソッド引数と、必要に応じて Converter を使用した型変換。Headers - すべてのヘッダーにアクセスするために MapSE にも割り当て可能でなければならないアノテーション付き引数。MessageHeaders 引数。MessageHeaderAccessor または SZMP over WebSocket のサポートは、SimpMessageHeaderAccessor などのサブクラスを使用して、すべてのメソッド引数に簡単にアクセスできます。DestinationVariable - メッセージの宛先から抽出されたテンプレート変数値にアクセスするためのアノテーション付き引数(/hotels/{hotel}) など)。変数値は、宣言されたメソッド引数型に変換されます。PrincipalSE メソッドの引数は、STOMP over WebSocket メッセージでサポートされています。これは、メッセージが受信された WebSocket セッションにログインしたユーザーを反映しています。通常の HTTP ベースの認証(Spring Security ベースなど)を使用して、WebSocket セッションを開始する HTTP ハンドシェイクを保護できます。 戻り値はメッセージとしてラップされ、デフォルトのレスポンス宛先または @SendTo メソッドレベルのアノテーションで指定されたカスタム宛先に送信されます。このようなレスポンスは、ListenableFuture 戻り値の型または対応する JDK 8 CompletableFutureSE/CompletionStageSE ハンドルを介して非同期的に提供される場合もあります。
@SendTo アノテーションは必須ではありません — デフォルトでは、メッセージは受信メッセージと同じ宛先に送信されますが、プレフィックスが追加されます(デフォルトでは "/topic")。接続されている場合、SendToUser アノテーションを使用してメッセージを特定のユーザーに送信することもできます。戻り値は MessageConverter で変換されます。
注 : コントローラーインターフェース(AOP プロキシなど)を使用する場合、@MessageMapping や @SubscribeMapping などのすべてのマッピングアノテーションを、実装クラスではなくコントローラーインターフェースに一貫して配置するようにしてください。
SimpAnnotationMethodMessageHandlerpublic abstract StringSE[] value
STOMP over WebSocket メッセージの場合: これは STOMP メッセージの宛先です(例: "/positions")。Ant スタイルのパスパターン("/price.stock.*" など)とパステンプレート変数("/price.stock.{ticker}" など)もサポートされています。