public class Jackson2ObjectMapperFactoryBean extends Object implements org.springframework.beans.factory.FactoryBean<ObjectMapper>, org.springframework.beans.factory.InitializingBean
FactoryBean
for creating a Jackson 2.x ObjectMapper
with setters
to enable or disable Jackson features from within XML configuration.
Example usage with
MappingJackson2HttpMessageConverter
:
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean" p:autoDetectFields="false" p:autoDetectGettersSetters="false" p:annotationIntrospector-ref="jaxbAnnotationIntrospector" /> </property> </bean>
Example usage with MappingJackson2JsonView:
<bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"> <property name="objectMapper"> <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean" p:failOnEmptyBeans="false" p:indentOutput="true"> <property name="serializers"> <array> <bean class="org.mycompany.MyCustomSerializer" /> </array> </property> </bean> </property> </bean>
In case there are no specific setters provided (for some rarely used options),
you can still use the more general methods setFeaturesToEnable(java.lang.Object...)
and
setFeaturesToDisable(java.lang.Object...)
.
<bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"> <property name="featuresToEnable"> <array> <util:constant static-field="com.fasterxml.jackson.databind.SerializationFeature$WRAP_ROOT_VALUE"/> <util:constant static-field="com.fasterxml.jackson.databind.SerializationFeature$CLOSE_CLOSEABLE"/> </array> </property> <property name="featuresToDisable"> <array> <util:constant static-field="com.fasterxml.jackson.databind.MapperFeature$USE_ANNOTATIONS"/> </array> </property> </bean>
Constructor and Description |
---|
Jackson2ObjectMapperFactoryBean() |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet() |
ObjectMapper |
getObject()
Return the singleton ObjectMapper.
|
Class<?> |
getObjectType() |
boolean |
isSingleton() |
void |
setAnnotationIntrospector(AnnotationIntrospector annotationIntrospector)
Set an
AnnotationIntrospector for both serialization and deserialization. |
void |
setAutoDetectFields(boolean autoDetectFields)
Shortcut for
MapperFeature.AUTO_DETECT_FIELDS option. |
void |
setAutoDetectGettersSetters(boolean autoDetectGettersSetters)
Shortcut for
MapperFeature.AUTO_DETECT_SETTERS /
MapperFeature.AUTO_DETECT_GETTERS option. |
void |
setDateFormat(DateFormat dateFormat)
Define the format for date/time with the given
DateFormat . |
void |
setDeserializersByType(Map<Class<?>,JsonDeserializer<?>> deserializers)
Configure custom deserializers for the given types.
|
void |
setFailOnEmptyBeans(boolean failOnEmptyBeans)
Shortcut for
SerializationFeature.FAIL_ON_EMPTY_BEANS option. |
void |
setFeaturesToDisable(Object... featuresToDisable)
Specify features to disable.
|
void |
setFeaturesToEnable(Object... featuresToEnable)
Specify features to enable.
|
void |
setIndentOutput(boolean indentOutput)
Shortcut for
SerializationFeature.INDENT_OUTPUT option. |
void |
setObjectMapper(ObjectMapper objectMapper)
Set the ObjectMapper instance to use.
|
void |
setSerializers(JsonSerializer<?>... serializers)
Configure custom serializers.
|
void |
setSerializersByType(Map<Class<?>,JsonSerializer<?>> serializers)
Configure custom serializers for the given types.
|
void |
setSimpleDateFormat(String format)
Define the date/time format with a
SimpleDateFormat . |
public void setObjectMapper(ObjectMapper objectMapper)
public void setDateFormat(DateFormat dateFormat)
DateFormat
.
Note: Setting this property makes the exposed ObjectMapper
non-thread-safe, according to Jackson's thread safety rules.
setSimpleDateFormat(String)
public void setSimpleDateFormat(String format)
SimpleDateFormat
.
Note: Setting this property makes the exposed ObjectMapper
non-thread-safe, according to Jackson's thread safety rules.
setDateFormat(DateFormat)
public void setAnnotationIntrospector(AnnotationIntrospector annotationIntrospector)
AnnotationIntrospector
for both serialization and deserialization.public void setSerializers(JsonSerializer<?>... serializers)
JsonSerializer.handledType()
, which must not be
null
.setSerializersByType(Map)
public void setSerializersByType(Map<Class<?>,JsonSerializer<?>> serializers)
setSerializers(JsonSerializer...)
public void setDeserializersByType(Map<Class<?>,JsonDeserializer<?>> deserializers)
public void setAutoDetectFields(boolean autoDetectFields)
MapperFeature.AUTO_DETECT_FIELDS
option.public void setAutoDetectGettersSetters(boolean autoDetectGettersSetters)
MapperFeature.AUTO_DETECT_SETTERS
/
MapperFeature.AUTO_DETECT_GETTERS
option.public void setFailOnEmptyBeans(boolean failOnEmptyBeans)
SerializationFeature.FAIL_ON_EMPTY_BEANS
option.public void setIndentOutput(boolean indentOutput)
SerializationFeature.INDENT_OUTPUT
option.public void setFeaturesToEnable(Object... featuresToEnable)
public void setFeaturesToDisable(Object... featuresToDisable)
public void afterPropertiesSet()
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
public ObjectMapper getObject()
getObject
in interface org.springframework.beans.factory.FactoryBean<ObjectMapper>
public Class<?> getObjectType()
getObjectType
in interface org.springframework.beans.factory.FactoryBean<ObjectMapper>
public boolean isSingleton()
isSingleton
in interface org.springframework.beans.factory.FactoryBean<ObjectMapper>