@CompileStatic class EssentialJacksonCustomizer extends Object implements Jackson2ObjectMapperBuilderCustomizer, BeanPostProcessor
Implementation of Spring Boot's Jackson2ObjectMapperBuilderCustomizer which configures Spring Boot's provided com.fasterxml.jackson.databind.ObjectMapper with a set of essential options.
So called 'essential' options are completely opinionated, of course, but they proven to be very useful base in many internal projects. If one finds some, or all of them, not appropriate, they can be turned off via EssentialJacksonCustomizerConfigurationProperties configuration properties. Beside Jackson configuration options available here, Spring Boot default options fromJacksonAutoConfiguration
still apply. Namely these are
SerializationFeature.WRITE_DATES_AS_TIMESTAMPS = false
and SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS = false
.
EssentialJacksonCustomizer configures following defaults:
MapperFeature.PROPAGATE_TRANSIENT_MARKER = true
)MapperFeature.REQUIRE_SETTERS_FOR_GETTERS = true
)MapperFeature.ACCEPT_CASE_INSENSITIVE_ENUMS = true
)serializationInclusion = JsonInclude.Include.NON_NULL
)JsonParser.Feature.ALLOW_COMMENTS = true
)DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY = true
)DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES = false
)defaultSetterInfo = JsonSetter.Value.forValueNulls(Nulls.SKIP)
)Type | Name and description |
---|---|
ObjectProvider<EssentialJacksonCustomizerConfigurationProperties> |
essentialJacksonCustomizerConfigurationPropertiesObjectProvider |
Constructor and description |
---|
EssentialJacksonCustomizer(ObjectProvider<EssentialJacksonCustomizerConfigurationProperties> essentialJacksonCustomizerConfigurationPropertiesObjectProvider) |
Type Params | Return Type | Name and description |
---|---|---|
|
void |
customize(Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder) |
|
Object |
postProcessAfterInitialization(Object bean, String beanName) For default Spring Boot's com.fasterxml.jackson.databind.ObjectMapper bean, configures properties that are not exposed via builder customization. |
For default Spring Boot's com.fasterxml.jackson.databind.ObjectMapper bean, configures properties that are not exposed via builder customization.
Groovy Documentation