アノテーションインターフェース MessageMapping


宣言された patterns をメッセージから抽出された宛先に一致させることにより、Message をメッセージ処理メソッドにマッピングするためのアノテーション。アノテーションは、すべてのクラスメソッドでパターンプレフィックスを宣言する方法として、型レベルでもサポートされています。

@MessageMapping メソッドは、次の引数をサポートしています。

  • @Payload メソッド引数。メッセージのペイロードを抽出し、宣言されたターゲット型にデシリアライズします。@Payload 引数には、@Validated などの検証アノテーションが付けられ、JSR-303 検証が適用されます。アノテーションは、他の方法では処理されない引数に対してデフォルトで想定されるため、存在する必要はありません。
  • メッセージ宛先から抽出されたテンプレート変数値にアクセスするための @DestinationVariable メソッド引数。/hotels/{hotel} 必要に応じて、変数値を String から宣言されたメソッド引数型に変換することもできます。
  • 特定のメッセージヘッダー値を抽出し、Converter を適用して、値を宣言されたターゲット型に変換する @Header メソッド引数。
  • すべてのヘッダーへのアクセスのために MapSE にも割り当て可能な @Headers メソッド引数。
  • すべてのヘッダーにアクセスするための MessageHeaders メソッド引数。
  • すべてのヘッダーにアクセスするための MessageHeaderAccessor メソッド引数。STOMP over WebSocket のような一部の処理シナリオでは、これは SimpMessageHeaderAccessor などの特殊化である場合もあります。
  • 宣言された型に一致するために必要に応じてボディが逆直列化されたボディおよびヘッダーへのアクセスのための Message<T>
  • PrincipalSE メソッド引数は、WebSocket を介した STOMP などの一部の処理シナリオでサポートされています。認証されたユーザーを反映します。

戻り値の処理は、処理シナリオによって異なります。

  • STOMP over WebSocket- 値はメッセージに変換され、デフォルトのレスポンス宛先または @SendTo または @SendToUser アノテーションで指定されたカスタム宛先に送信されます。
  • RSocket- レスポンスは、ストリームリクエストにレスポンスするために使用されます。

このアノテーションの専門分野には、@SubscribeMapping(例: STOMP サブスクリプション)および @ConnectMapping(例: RSocket 接続)が含まれます。どちらもプライマリマッピングをさらに絞り込み、メッセージ型と照合します。両方を、共通のパターンプレフィックスを宣言する型レベルの @MessageMapping と組み合わせることができます。

さまざまなコンテキストでのこのアノテーションの使用の詳細については、Spring Framework リファレンスの以下のセクションを参照してください。

: コントローラーインターフェース(AOP プロキシなど)を使用する場合、@MessageMapping や @SubscribeMapping などのすべてのマッピングアノテーションを、実装クラスではなくコントローラーインターフェースに一貫して配置するようにしてください。

導入:
4.0
作成者:
Rossen Stoyanchev
関連事項:
  • オプション要素のサマリー

    オプション要素
    修飾子と型
    オプションの要素
    説明
    このアノテーションによって表される宛先ベースのマッピング。
  • 要素の詳細

    • value

      StringSE[] value
      このアノテーションによって表される宛先ベースのマッピング。

      STOMP over WebSocket メッセージの場合、これは AntPathMatcher -style パターンがメッセージの STOMP 宛先と照合されます。

      RSocket の場合、これは AntPathMatcher または PathPattern ベースのパターンであり、設定に応じて、ストリームリクエストのルートに一致します。

      パターンが設定されていない場合、マッピングはすべての宛先に一致します。

      デフォルト:
      {}