public class Jackson2ObjectMapperFactoryBean extends Object implements org.springframework.beans.factory.FactoryBean<com.fasterxml.jackson.databind.ObjectMapper>, org.springframework.beans.factory.InitializingBean
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.web.context.support.Jackson2ObjectMapperFactoryBean"
p:autoDetectFields="false"
p:autoDetectGettersSetters="false"
p:annotationIntrospector-ref="jaxbAnnotationIntrospector" />
</property>
</bean>
Example usage with org.springframework.web.servlet.view.json.MappingJackson2JsonView:
<bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
<property name="objectMapper">
<bean class="org.springframework.web.context.support.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(Object[]) and setFeaturesToDisable(Object[]).
<bean class="org.springframework.web.context.support.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>
Note: This BeanFctory is singleton, so if you need more than one you'll need to configure multiple instances.
| Constructor and Description |
|---|
Jackson2ObjectMapperFactoryBean() |
| Modifier and Type | Method and Description |
|---|---|
void |
afterPropertiesSet() |
com.fasterxml.jackson.databind.ObjectMapper |
getObject()
Return the singleton ObjectMapper.
|
Class<?> |
getObjectType() |
boolean |
isSingleton() |
void |
setAnnotationIntrospector(com.fasterxml.jackson.databind.AnnotationIntrospector annotationIntrospector)
Set the
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<?>,com.fasterxml.jackson.databind.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(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
Set the ObjectMapper instance to use.
|
void |
setSerializers(com.fasterxml.jackson.databind.JsonSerializer<?>... serializers)
Configure custom serializers.
|
void |
setSerializersByType(Map<Class<?>,com.fasterxml.jackson.databind.JsonSerializer<?>> serializers)
Configure custom serializers for the given types.
|
void |
setSimpleDateFormat(String format)
Define the date/time format with a
SimpleDateFormat. |
public void setObjectMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
public void setDateFormat(DateFormat dateFormat)
DateFormat.setSimpleDateFormat(String)public void setSimpleDateFormat(String format)
SimpleDateFormat.setDateFormat(DateFormat)public void setAnnotationIntrospector(com.fasterxml.jackson.databind.AnnotationIntrospector annotationIntrospector)
AnnotationIntrospector for both serialization and
deserialization.public void setSerializers(com.fasterxml.jackson.databind.JsonSerializer<?>... serializers)
JsonSerializer.handledType(), which must not be
null.setSerializersByType(Map)public void setSerializersByType(Map<Class<?>,com.fasterxml.jackson.databind.JsonSerializer<?>> serializers)
setSerializers(JsonSerializer...)public void setDeserializersByType(Map<Class<?>,com.fasterxml.jackson.databind.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)
MapperFeature,
SerializationFeature,
DeserializationFeature,
JsonParser.Feature,
JsonGenerator.Featurepublic void setFeaturesToDisable(Object... featuresToDisable)
MapperFeature,
SerializationFeature,
DeserializationFeature,
JsonParser.Feature,
JsonGenerator.Featurepublic void afterPropertiesSet()
throws org.springframework.beans.FatalBeanException
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBeanorg.springframework.beans.FatalBeanExceptionpublic com.fasterxml.jackson.databind.ObjectMapper getObject()
getObject in interface org.springframework.beans.factory.FactoryBean<com.fasterxml.jackson.databind.ObjectMapper>public Class<?> getObjectType()
getObjectType in interface org.springframework.beans.factory.FactoryBean<com.fasterxml.jackson.databind.ObjectMapper>public boolean isSingleton()
isSingleton in interface org.springframework.beans.factory.FactoryBean<com.fasterxml.jackson.databind.ObjectMapper>