我有一個基於Maven的多模塊Spring應用程序。在我的一個模塊的application.properties
文件中,我將Jackson設置爲而不是將日期序列化爲時間戳(數組),以便它們始終作爲字符串序列化(這是回退行爲)。該物業是這樣的:Spring Boot:傑克遜不會從「application.properties」中獲取配置
spring.jackson.serialization.write_dates_as_timestamps=false
問題是...財產似乎並沒有通過任何春啓動/傑克遜被拾起。我試圖序列化的java.time.LocalDate
實例總是被寫爲時間戳。我已經檢查了LocalDateSerializer.serialize(...)
方法裏面的代碼(來自傑克遜自己JavaTimeModule),並發現這一點:
@Override
public void serialize(LocalDate date, JsonGenerator generator, SerializerProvider provider) throws IOException
{
if (useTimestamp(provider)) { // This always returns true
generator.writeStartArray();
generator.writeNumber(date.getYear());
generator.writeNumber(date.getMonthValue());
generator.writeNumber(date.getDayOfMonth());
generator.writeEndArray();
} else {
String str = (_formatter == null) ? date.toString() : date.format(_formatter);
generator.writeString(str);
}
}
的useTimestamp()
方法總是返回true,不管我的配置是什麼。 :(
是否需要擴展WebMvcConfigurerAdapter? – Enrique
我通常按照上面示例中的方式完成。更多的控制'ObjectMapper'的行爲。 –
創建一個自定義的'HttpMessageConverter'使我意識到必須將它明確地注入到我試圖配置的RestTemplate實例中。我添加了一個詳細說明我的發現的答案。 :) – Enrique