Class HttpEntityMethodProcessor
java.lang.Object
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor
org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor
- All Implemented Interfaces:
org.springframework.web.method.support.HandlerMethodArgumentResolver,org.springframework.web.method.support.HandlerMethodReturnValueHandler
Resolves
HttpEntity and RequestEntity method argument values,
as well as return values of type HttpEntity, ResponseEntity,
ErrorResponse and ProblemDetail.
An HttpEntity return type has a specific purpose. Therefore, this
handler should be configured ahead of handlers that support any return
value type annotated with @ModelAttribute or @ResponseBody
to ensure they don't take over.
- Since:
- 3.1
- Author:
- Arjen Poutsma, Rossen Stoyanchev, Brian Clozel, Sam Brannen
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver
AbstractMessageConverterMethodArgumentResolver.ConverterType -
Field Summary
Fields inherited from class org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver
logger, messageConverters -
Constructor Summary
ConstructorsConstructorDescriptionHttpEntityMethodProcessor(List<org.springframework.http.converter.HttpMessageConverter<?>> converters) Basic constructor with converters only.HttpEntityMethodProcessor(List<org.springframework.http.converter.HttpMessageConverter<?>> converters, List<Object> requestResponseBodyAdvice) Complete constructor for resolvingHttpEntitymethod arguments.HttpEntityMethodProcessor(List<org.springframework.http.converter.HttpMessageConverter<?>> converters, org.springframework.web.accept.ContentNegotiationManager manager) Basic constructor with converters andContentNegotiationManager.HttpEntityMethodProcessor(List<org.springframework.http.converter.HttpMessageConverter<?>> converters, org.springframework.web.accept.ContentNegotiationManager manager, List<Object> requestResponseBodyAdvice) Variant ofHttpEntityMethodProcessor(List, List)with an additionalContentNegotiationManagerargument for return value handling.HttpEntityMethodProcessor(List<org.springframework.http.converter.HttpMessageConverter<?>> converters, org.springframework.web.accept.ContentNegotiationManager manager, List<Object> requestResponseBodyAdvice, List<org.springframework.web.ErrorResponse.Interceptor> interceptors) Variant ofHttpEntityMethodProcessor(List, ContentNegotiationManager, List)with additional list ofErrorResponse.Interceptors for return value handling. -
Method Summary
Modifier and TypeMethodDescriptionprotected Class<?>getReturnValueType(Object returnValue, org.springframework.core.MethodParameter returnType) Return the type of the value to be written to the response.voidhandleReturnValue(Object returnValue, org.springframework.core.MethodParameter returnType, org.springframework.web.method.support.ModelAndViewContainer mavContainer, org.springframework.web.context.request.NativeWebRequest webRequest) resolveArgument(org.springframework.core.MethodParameter parameter, org.springframework.web.method.support.ModelAndViewContainer mavContainer, org.springframework.web.context.request.NativeWebRequest webRequest, org.springframework.web.bind.support.WebDataBinderFactory binderFactory) booleansupportsParameter(org.springframework.core.MethodParameter parameter) booleansupportsReturnType(org.springframework.core.MethodParameter returnType) Methods inherited from class org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor
createOutputMessage, getProducibleMediaTypes, getProducibleMediaTypes, invokeErrorResponseInterceptors, isResourceType, writeWithMessageConverters, writeWithMessageConvertersMethods inherited from class org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver
adaptArgumentIfNecessary, createInputMessage, getNestedTypeIfNeeded, getSupportedMediaTypes, isBindExceptionRequired, readWithMessageConverters, readWithMessageConverters, validateIfApplicable
-
Constructor Details
-
HttpEntityMethodProcessor
public HttpEntityMethodProcessor(List<org.springframework.http.converter.HttpMessageConverter<?>> converters) Basic constructor with converters only. Suitable for resolvingHttpEntity. For handlingResponseEntityconsider also providing aContentNegotiationManager. -
HttpEntityMethodProcessor
public HttpEntityMethodProcessor(List<org.springframework.http.converter.HttpMessageConverter<?>> converters, org.springframework.web.accept.ContentNegotiationManager manager) Basic constructor with converters andContentNegotiationManager. Suitable for resolvingHttpEntityand handlingResponseEntitywithoutRequest~orResponseBodyAdvice. -
HttpEntityMethodProcessor
public HttpEntityMethodProcessor(List<org.springframework.http.converter.HttpMessageConverter<?>> converters, List<Object> requestResponseBodyAdvice) Complete constructor for resolvingHttpEntitymethod arguments. For handlingResponseEntityconsider also providing aContentNegotiationManager.- Since:
- 4.2
-
HttpEntityMethodProcessor
public HttpEntityMethodProcessor(List<org.springframework.http.converter.HttpMessageConverter<?>> converters, @Nullable org.springframework.web.accept.ContentNegotiationManager manager, List<Object> requestResponseBodyAdvice) Variant ofHttpEntityMethodProcessor(List, List)with an additionalContentNegotiationManagerargument for return value handling. -
HttpEntityMethodProcessor
public HttpEntityMethodProcessor(List<org.springframework.http.converter.HttpMessageConverter<?>> converters, @Nullable org.springframework.web.accept.ContentNegotiationManager manager, List<Object> requestResponseBodyAdvice, List<org.springframework.web.ErrorResponse.Interceptor> interceptors) Variant ofHttpEntityMethodProcessor(List, ContentNegotiationManager, List)with additional list ofErrorResponse.Interceptors for return value handling.- Since:
- 6.2
-
-
Method Details
-
supportsParameter
public boolean supportsParameter(org.springframework.core.MethodParameter parameter) -
supportsReturnType
public boolean supportsReturnType(org.springframework.core.MethodParameter returnType) -
resolveArgument
@Nullable public Object resolveArgument(org.springframework.core.MethodParameter parameter, @Nullable org.springframework.web.method.support.ModelAndViewContainer mavContainer, org.springframework.web.context.request.NativeWebRequest webRequest, @Nullable org.springframework.web.bind.support.WebDataBinderFactory binderFactory) throws IOException, org.springframework.web.HttpMediaTypeNotSupportedException - Throws:
IOExceptionorg.springframework.web.HttpMediaTypeNotSupportedException
-
handleReturnValue
public void handleReturnValue(@Nullable Object returnValue, org.springframework.core.MethodParameter returnType, org.springframework.web.method.support.ModelAndViewContainer mavContainer, org.springframework.web.context.request.NativeWebRequest webRequest) throws Exception - Throws:
Exception
-
getReturnValueType
protected Class<?> getReturnValueType(@Nullable Object returnValue, org.springframework.core.MethodParameter returnType) Description copied from class:AbstractMessageConverterMethodProcessorReturn the type of the value to be written to the response. Typically this is a simple check via getClass on the value but if the value is null, then the return type needs to be examined possibly including generic type determination (for example,ResponseEntity<T>).- Overrides:
getReturnValueTypein classAbstractMessageConverterMethodProcessor
-