Class AbstractMappingJacksonResponseBodyAdvice
java.lang.Object
org.springframework.web.servlet.mvc.method.annotation.AbstractMappingJacksonResponseBodyAdvice
- All Implemented Interfaces:
ResponseBodyAdvice<Object>
- Direct Known Subclasses:
JsonViewResponseBodyAdvice
public abstract class AbstractMappingJacksonResponseBodyAdvice
extends Object
implements ResponseBodyAdvice<Object>
A convenient base class for
ResponseBodyAdvice
implementations
that customize the response before JSON serialization with
AbstractJackson2HttpMessageConverter
's concrete subclasses.- Since:
- 4.1
- Author:
- Rossen Stoyanchev, Sebastien Deleuze
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal Object
beforeBodyWrite
(Object body, org.springframework.core.MethodParameter returnType, org.springframework.http.MediaType contentType, Class<? extends org.springframework.http.converter.HttpMessageConverter<?>> converterType, org.springframework.http.server.ServerHttpRequest request, org.springframework.http.server.ServerHttpResponse response) Invoked after anHttpMessageConverter
is selected and just before its write method is invoked.protected abstract void
beforeBodyWriteInternal
(org.springframework.http.converter.json.MappingJacksonValue bodyContainer, org.springframework.http.MediaType contentType, org.springframework.core.MethodParameter returnType, org.springframework.http.server.ServerHttpRequest request, org.springframework.http.server.ServerHttpResponse response) Invoked only if the converter type isMappingJackson2HttpMessageConverter
.protected org.springframework.http.converter.json.MappingJacksonValue
getOrCreateContainer
(Object body) Wrap the body in aMappingJacksonValue
value container (for providing additional serialization instructions) or simply cast it if already wrapped.boolean
supports
(org.springframework.core.MethodParameter returnType, Class<? extends org.springframework.http.converter.HttpMessageConverter<?>> converterType) Whether this component supports the given controller method return type and the selectedHttpMessageConverter
type.
-
Constructor Details
-
AbstractMappingJacksonResponseBodyAdvice
public AbstractMappingJacksonResponseBodyAdvice()
-
-
Method Details
-
supports
public boolean supports(org.springframework.core.MethodParameter returnType, Class<? extends org.springframework.http.converter.HttpMessageConverter<?>> converterType) Description copied from interface:ResponseBodyAdvice
Whether this component supports the given controller method return type and the selectedHttpMessageConverter
type.- Specified by:
supports
in interfaceResponseBodyAdvice<Object>
- Parameters:
returnType
- the return typeconverterType
- the selected converter type- Returns:
true
ifResponseBodyAdvice.beforeBodyWrite(T, org.springframework.core.MethodParameter, org.springframework.http.MediaType, java.lang.Class<? extends org.springframework.http.converter.HttpMessageConverter<?>>, org.springframework.http.server.ServerHttpRequest, org.springframework.http.server.ServerHttpResponse)
should be invoked;false
otherwise
-
beforeBodyWrite
@Nullable public final Object beforeBodyWrite(@Nullable Object body, org.springframework.core.MethodParameter returnType, org.springframework.http.MediaType contentType, Class<? extends org.springframework.http.converter.HttpMessageConverter<?>> converterType, org.springframework.http.server.ServerHttpRequest request, org.springframework.http.server.ServerHttpResponse response) Description copied from interface:ResponseBodyAdvice
Invoked after anHttpMessageConverter
is selected and just before its write method is invoked.- Specified by:
beforeBodyWrite
in interfaceResponseBodyAdvice<Object>
- Parameters:
body
- the body to be writtenreturnType
- the return type of the controller methodcontentType
- the content type selected through content negotiationconverterType
- the converter type selected to write to the responserequest
- the current requestresponse
- the current response- Returns:
- the body that was passed in or a modified (possibly new) instance
-
getOrCreateContainer
protected org.springframework.http.converter.json.MappingJacksonValue getOrCreateContainer(Object body) Wrap the body in aMappingJacksonValue
value container (for providing additional serialization instructions) or simply cast it if already wrapped. -
beforeBodyWriteInternal
protected abstract void beforeBodyWriteInternal(org.springframework.http.converter.json.MappingJacksonValue bodyContainer, org.springframework.http.MediaType contentType, org.springframework.core.MethodParameter returnType, org.springframework.http.server.ServerHttpRequest request, org.springframework.http.server.ServerHttpResponse response) Invoked only if the converter type isMappingJackson2HttpMessageConverter
.
-