クラス PayloadMethodArgumentResolver
java.lang.ObjectSE
org.springframework.messaging.handler.annotation.support.PayloadMethodArgumentResolver
- 実装されたすべてのインターフェース:
HandlerMethodArgumentResolver
public class PayloadMethodArgumentResolver
extends ObjectSE
implements HandlerMethodArgumentResolver
MessageConverter
を使用してメッセージのペイロードを抽出および変換するリゾルバー。また、引数に Validation アノテーションが付けられている場合は、Validator
を使用してペイロードを検証します。 この HandlerMethodArgumentResolver
は、すべての型をサポートし、Payload
アノテーションを必要としないため、最後に並べ替える必要があります。
- 導入:
- 5.2
- 作成者:
- Rossen Stoyanchev, Juergen Hoeller, Brian Clozel, Stephane Nicoll
コンストラクターのサマリー
コンストラクター説明PayloadMethodArgumentResolver
(MessageConverter messageConverter) 指定されたMessageConverter
で新しいPayloadArgumentResolver
を作成します。PayloadMethodArgumentResolver
(MessageConverter messageConverter, Validator validator) PayloadMethodArgumentResolver
(MessageConverter messageConverter, Validator validator, boolean useDefaultResolution) メソッドのサマリー
修飾子と型メソッド説明protected boolean
isEmptyPayload
(ObjectSE payload) 指定されたpayload
が空かどうかを指定します。resolveArgument
(MethodParameter parameter, Message<?> message) メソッドパラメーターを特定のメッセージの引数値に解決します。protected ClassSE<?>
resolveTargetClass
(MethodParameter parameter, Message<?> message) ペイロードを変換するターゲットクラスを解決します。boolean
supportsParameter
(MethodParameter parameter) 指定されたメソッドパラメーターがこのリゾルバーによってサポートされているかどうか。protected void
validate
(Message<?> message, MethodParameter parameter, ObjectSE target) 該当する場合、ペイロードを検証します。
コンストラクターの詳細
PayloadMethodArgumentResolver
指定されたMessageConverter
で新しいPayloadArgumentResolver
を作成します。- パラメーター:
messageConverter
- 使用する MessageConverter (必須)
PayloadMethodArgumentResolver
public PayloadMethodArgumentResolver(MessageConverter messageConverter, @Nullable Validator validator) - パラメーター:
messageConverter
- 使用する MessageConverter (必須)validator
- 使用するバリデータ (オプション)
PayloadMethodArgumentResolver
public PayloadMethodArgumentResolver(MessageConverter messageConverter, @Nullable Validator validator, boolean useDefaultResolution) - パラメーター:
messageConverter
- 使用する MessageConverter (必須)validator
- 使用するバリデータ (オプション)useDefaultResolution
- "true" (デフォルト)の場合、このリゾルバーはすべてのパラメーターをサポートします。"false" の場合、@Payload
アノテーションが付いた引数のみがサポートされます。
メソッドの詳細
supportsParameter
インターフェースからコピーされた説明:HandlerMethodArgumentResolver
指定されたメソッドパラメーターがこのリゾルバーによってサポートされているかどうか。- 次で指定:
- インターフェース
HandlerMethodArgumentResolver
のsupportsParameter
- パラメーター:
parameter
- チェックするメソッドパラメーター- 戻り値:
- このリゾルバーが提供されたパラメーターをサポートする場合、
true
。それ以外の場合はfalse
resolveArgument
@Nullable public ObjectSE resolveArgument(MethodParameter parameter, Message<?> message) throws ExceptionSE インターフェースからコピーされた説明:HandlerMethodArgumentResolver
メソッドパラメーターを特定のメッセージの引数値に解決します。- 次で指定:
- インターフェース
HandlerMethodArgumentResolver
のresolveArgument
- パラメーター:
parameter
- 解決するメソッドパラメーター。このパラメーターは、true
を返さなければならないHandlerMethodArgumentResolver.supportsParameter(org.springframework.core.MethodParameter)
に事前に渡されている必要があります。message
- 現在処理されているメッセージ- 戻り値:
- 解決された引数値、または
null
- 例外:
ExceptionSE
- 引数値の準備でエラーが発生した場合
isEmptyPayload
指定されたpayload
が空かどうかを指定します。- パラメーター:
payload
- チェックするペイロード (null
にすることができます)
resolveTargetClass
ペイロードを変換するターゲットクラスを解決します。デフォルトでは、これは単に
MethodParameter.getParameterType()
ですが、"Content-Type" も考慮した後、オーバーライドしてより具体的なターゲット型を選択できます。ターゲット型がObject
および"Content-Type:text/**"
の場合、String
を返します。- パラメーター:
parameter
- ターゲットメソッドのパラメーターmessage
- 処理中のメッセージ- 戻り値:
- 使用するターゲット型
- 導入:
- 5.2
validate
該当する場合、ペイロードを検証します。デフォルトの実装では、
@jakarta.validation.Valid
、Spring のValidated
、名前が "Valid" で始まるカスタムアノテーションをチェックします。- パラメーター:
message
- 現在処理されているメッセージparameter
- メソッドパラメーターtarget
- ターゲットペイロードオブジェクト- 例外:
MethodArgumentNotValidException
- バインディングエラーの場合