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