public class RequestResponseBodyMethodProcessor extends AbstractMessageConverterMethodProcessor
@RequestBody
でアノテーション付けされたメソッド引数を解決し、HttpMessageConverter
でリクエストまたはレスポンスの本文を読み書きすることにより、@ResponseBody
でアノテーション付けされたメソッドからの戻り値を処理します。@RequestBody
メソッド引数は、検証をトリガーするアノテーションが付けられている場合にも検証されます。検証が失敗した場合、MethodArgumentNotValidException
が発生し、DefaultHandlerExceptionResolver
が構成されていると、HTTP400 レスポンスステータスコードが生成されます。
logger, messageConverters
コンストラクターと説明 |
---|
RequestResponseBodyMethodProcessor(ListSE<HttpMessageConverter<?>> converters) コンバーターのみを備えた基本コンストラクター。 |
RequestResponseBodyMethodProcessor(ListSE<HttpMessageConverter<?>> converters, ContentNegotiationManager manager) コンバーターと ContentNegotiationManager を使用した基本コンストラクター。 |
RequestResponseBodyMethodProcessor(ListSE<HttpMessageConverter<?>> converters, ContentNegotiationManager manager, ListSE<ObjectSE> requestResponseBodyAdvice) @RequestBody を解決し、@ResponseBody を処理するための完全なコンストラクター。 |
RequestResponseBodyMethodProcessor(ListSE<HttpMessageConverter<?>> converters, ListSE<ObjectSE> requestResponseBodyAdvice) @RequestBody メソッドの引数を解決するための完全なコンストラクター。 |
修飾子と型 | メソッドと説明 |
---|---|
protected boolean | checkRequired(MethodParameter parameter) |
void | handleReturnValue(ObjectSE returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) 属性をモデルに追加し、ビューを設定するか、 ModelAndViewContainer.setRequestHandled(boolean) フラグを true に設定して、レスポンスが直接処理されたことを示すことにより、指定された戻り値を処理します。 |
protected <T> ObjectSE | readWithMessageConverters(NativeWebRequest webRequest, MethodParameter parameter, TypeSE paramType) 指定されたリクエストから読み取ることにより、予想されるパラメーター型のメソッド引数値を作成します。 |
ObjectSE | resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) 検証が失敗した場合、MethodArgumentNotValidException をスローします。 |
boolean | supportsParameter(MethodParameter parameter) 指定されたメソッドパラメーターがこのリゾルバーによってサポートされているかどうか。 |
boolean | supportsReturnType(MethodParameter returnType) 指定されたメソッドの戻り型がこのハンドラーでサポートされているかどうか。 |
createOutputMessage, getProducibleMediaTypes, getProducibleMediaTypes, getReturnValueType, isResourceType, writeWithMessageConverters, writeWithMessageConverters
adaptArgumentIfNecessary, createInputMessage, getSupportedMediaTypes, isBindExceptionRequired, readWithMessageConverters, validateIfApplicable
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public RequestResponseBodyMethodProcessor(ListSE<HttpMessageConverter<?>> converters)
@RequestBody
の解決に適しています。@ResponseBody
を処理するには、ContentNegotiationManager
も提供することを検討してください。public RequestResponseBodyMethodProcessor(ListSE<HttpMessageConverter<?>> converters, @Nullable ContentNegotiationManager manager)
ContentNegotiationManager
を使用した基本コンストラクター。@RequestBody
を解決し、Request~
または ResponseBodyAdvice
なしで @ResponseBody
を処理するのに適しています。public RequestResponseBodyMethodProcessor(ListSE<HttpMessageConverter<?>> converters, @Nullable ListSE<ObjectSE> requestResponseBodyAdvice)
@RequestBody
メソッドの引数を解決するための完全なコンストラクター。@ResponseBody
を処理するには、ContentNegotiationManager
も提供することを検討してください。public RequestResponseBodyMethodProcessor(ListSE<HttpMessageConverter<?>> converters, @Nullable ContentNegotiationManager manager, @Nullable ListSE<ObjectSE> requestResponseBodyAdvice)
@RequestBody
を解決し、@ResponseBody
を処理するための完全なコンストラクター。public boolean supportsParameter(MethodParameter parameter)
HandlerMethodArgumentResolver
parameter
- チェックするメソッドパラメーター true
。それ以外の場合は false
public boolean supportsReturnType(MethodParameter returnType)
HandlerMethodReturnValueHandler
returnType
- チェックするメソッドの戻り値の型 true
。それ以外の場合は false
public ObjectSE resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) throws ExceptionSE
parameter
- 解決するメソッドパラメーター。このパラメーターは、true
を返さなければならない HandlerMethodArgumentResolver.supportsParameter(org.springframework.core.MethodParameter)
に事前に渡されている必要があります。mavContainer
- 現在のリクエストの ModelAndViewContainerwebRequest
- 現在のリクエスト binderFactory
- WebDataBinder
インスタンスを作成するためのファクトリ null
HttpMessageNotReadableException
- RequestBody.required()
が true
であり、本文コンテンツがない場合、コンテンツを読み取るための適切なコンバーターがない場合。ExceptionSE
- 引数値の準備でエラーが発生した場合 protected <T> ObjectSE readWithMessageConverters(NativeWebRequest webRequest, MethodParameter parameter, TypeSE paramType) throws IOExceptionSE, HttpMediaTypeNotSupportedException, HttpMessageNotReadableException
AbstractMessageConverterMethodArgumentResolver
AbstractMessageConverterMethodArgumentResolver
の readWithMessageConverters
T
- 作成される引数値の予想される型 webRequest
- 現在のリクエスト parameter
- メソッドパラメーター記述子 (null
の場合があります)paramType
- 作成される引数値の型 IOExceptionSE
- リクエストからの読み取りが失敗した場合 HttpMediaTypeNotSupportedException
- 適切なメッセージコンバーターが見つからない場合 HttpMessageNotReadableException
protected boolean checkRequired(MethodParameter parameter)
public void handleReturnValue(@Nullable ObjectSE returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws IOExceptionSE, HttpMediaTypeNotAcceptableException, HttpMessageNotWritableException
HandlerMethodReturnValueHandler
ModelAndViewContainer.setRequestHandled(boolean)
フラグを true
に設定して、レスポンスが直接処理されたことを示すことにより、指定された戻り値を処理します。returnValue
- ハンドラーメソッドから返された値 returnType
- 戻り値の型。この型は、true
を返さなければならない HandlerMethodReturnValueHandler.supportsReturnType(org.springframework.core.MethodParameter)
に事前に渡されている必要があります。mavContainer
- 現在のリクエストの ModelAndViewContainerwebRequest
- 現在のリクエスト IOExceptionSE
HttpMediaTypeNotAcceptableException
HttpMessageNotWritableException