JacksonのObjectMapperをカスタマイズしたいのでやり方を調べた
Bean登録して、@Primaryアノテーションをつける
一番シンプルな方法
@Bean @Primary public ObjectMapper objectMapper() { JavaTimeModule module = new JavaTimeModule(); module.addSerializer(LOCAL_DATETIME_SERIALIZER); return new ObjectMapper() .setSerializationInclusion(JsonInclude.Include.NON_NULL) .registerModule(module); }
Jackson2ObjectMapperBuilderを使う
Jacksonがクラスパス上にある場合は、Jackson2ObjectMapperBuilderが使える
これを使う場合は、以下の設定がデフォルトでされているとのこと
MapperFeature.DEFAULT_VIEW_INCLUSION is disabled DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES is disabled SerializationFeature.WRITE_DATES_AS_TIMESTAMPS is disabled
@Bean public Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder() { return new Jackson2ObjectMapperBuilder().serializers(LOCAL_DATETIME_SERIALIZER) .serializationInclusion(JsonInclude.Include.NON_NULL); }
これでカスタマイズすることができた