我有一个基于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