クラス PayloadMethodArgumentResolver

java.lang.ObjectSE
org.springframework.messaging.handler.annotation.support.PayloadMethodArgumentResolver
実装されたすべてのインターフェース:
HandlerMethodArgumentResolver

public class PayloadMethodArgumentResolver extends ObjectSE implements HandlerMethodArgumentResolver
MessageConverter を使用してメッセージのペイロードを抽出および変換するリゾルバー。

メソッドの引数に Validated または @jakarta.validation.Valid のアノテーションが付けられている場合、検証が適用されます。検証に失敗すると MethodArgumentNotValidException が発生します。

この HandlerMethodArgumentResolver は、すべての型をサポートし、Payload アノテーションを必要としないため、最後に並べ替える必要があります。

導入:
5.2
作成者:
Rossen Stoyanchev, Juergen Hoeller, Brian Clozel, Stephane Nicoll
  • コンストラクターの詳細

    • PayloadMethodArgumentResolver

      public PayloadMethodArgumentResolver(MessageConverter messageConverter)
      指定された MessageConverter で新しい PayloadArgumentResolver を作成します。
      パラメーター:
      messageConverter - 使用する MessageConverter (必須)
    • PayloadMethodArgumentResolver

      public PayloadMethodArgumentResolver(MessageConverter messageConverter, @Nullable Validator validator)
      指定された MessageConverter および Validator で新しい PayloadArgumentResolver を作成します。
      パラメーター:
      messageConverter - 使用する MessageConverter (必須)
      validator - 使用するバリデータ (オプション)
    • PayloadMethodArgumentResolver

      public PayloadMethodArgumentResolver(MessageConverter messageConverter, @Nullable Validator validator, boolean useDefaultResolution)
      指定された MessageConverter および Validator で新しい PayloadArgumentResolver を作成します。
      パラメーター:
      messageConverter - 使用する MessageConverter (必須)
      validator - 使用するバリデータ (オプション)
      useDefaultResolution - "true" (デフォルト)の場合、このリゾルバーはすべてのパラメーターをサポートします。"false" の場合、@Payload アノテーションが付いた引数のみがサポートされます。
  • メソッドの詳細

    • supportsParameter

      public boolean supportsParameter(MethodParameter parameter)
      インターフェースからコピーされた説明: HandlerMethodArgumentResolver
      指定されたメソッドパラメーターがこのリゾルバーによってサポートされているかどうか。
      次で指定:
      インターフェース HandlerMethodArgumentResolversupportsParameter 
      パラメーター:
      parameter - チェックするメソッドパラメーター
      戻り値:
      このリゾルバーが提供されたパラメーターをサポートする場合、true。それ以外の場合は false 
    • resolveArgument

      @Nullable public ObjectSE resolveArgument(MethodParameter parameter, Message<?> message) throws ExceptionSE
      インターフェースからコピーされた説明: HandlerMethodArgumentResolver
      メソッドパラメーターを特定のメッセージの引数値に解決します。
      次で指定:
      インターフェース HandlerMethodArgumentResolverresolveArgument 
      パラメーター:
      parameter - 解決するメソッドパラメーター。このパラメーターは、true を返さなければならない HandlerMethodArgumentResolver.supportsParameter(org.springframework.core.MethodParameter) に事前に渡されている必要があります。
      message - 現在処理されているメッセージ
      戻り値:
      解決された引数値、または null
      例外:
      ExceptionSE - 引数値の準備でエラーが発生した場合
    • isEmptyPayload

      protected boolean isEmptyPayload(@Nullable ObjectSE payload)
      指定された payload が空かどうかを指定します。
      パラメーター:
      payload - チェックするペイロード (null にすることができます)
    • resolveTargetClass

      protected ClassSE<?> resolveTargetClass(MethodParameter parameter, Message<?> message)
      ペイロードを変換するターゲットクラスを解決します。

      デフォルトでは、これは単に MethodParameter.getParameterType() ですが、"Content-Type" も考慮した後、オーバーライドしてより具体的なターゲット型を選択できます。ターゲット型が Object および "Content-Type:text/**" の場合、String を返します。

      パラメーター:
      parameter - ターゲットメソッドのパラメーター
      message - 処理中のメッセージ
      戻り値:
      使用するターゲット型
      導入:
      5.2
    • validate

      protected void validate(Message<?> message, MethodParameter parameter, ObjectSE target)
      該当する場合、ペイロードを検証します。
      パラメーター:
      message - 現在処理されているメッセージ
      parameter - メソッドパラメーター
      target - ターゲットペイロードオブジェクト
      例外:
      MethodArgumentNotValidException - バインディングエラーの場合