Я пытаюсь заставить Spring (Spring Boot 2.2.4) сериализовать LocalTime
экземпляры как "hh:mm:ss"
вместо массивов [h, m, s]
. До сих пор я пытался:
Настройка spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMP=false
в application.properties
Переопределение конфигурации ObjectMapper
:
@Bean
@Primary // needed? Who knows
open fun mapper(): ObjectMapper {
val mapper = ObjectMapper()
val javaTimeModule = JavaTimeModule()
// attempt 1
javaTimeModule.addSerializer(LocalTime::class.java, myCustomSerializer)
mapper.registerModule(javaTimeModule)
// attempt 2
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
return mapper
}
Для попытки 1 я могу увидеть, что модуль зарегистрирован, но если я переопределю методы serialize
или serializeWithType
, они никогда не будут вызваны. Попытка 2 просто не имеет никакого эффекта.
Как заставить Spring фактически вызвать пользовательский ObjectMapper? Даже намек на то, что я могу попытаться понять, почему он не вызывается, может помочь.