Spring Boot を使用して開始されたこの Spring MVC コントローラーを検討してください。
@RequestMapping("/foo")
public Foo get() {
return new Foo();
}
public class Foo {
@Getter
@Setter
private ZonedDateTime time = ZonedDateTime.now();
}
Foo オブジェクトを Jackson JSR-310 モジュールでシリアライズしたいと考えています。この依存関係はクラスパスにあります:
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
application.properties に jackson の設定もあります。
spring.jackson.serialization.write-dates-as-timestamps=false
ジャクソンのドキュメントによると、ISO日時形式に変換する必要がありますが、まだタイムスタンプ値を取得しています...
{
time: 1508867114.796
}
ZonedDateTimeSerializer 内で次のことに気付きました。
@Override
public void serialize(ZonedDateTime value, JsonGenerator generator, SerializerProvider provider) throws IOException {
if (!useTimestamp(provider)) {
if (shouldWriteWithZoneId(provider)) {
// write with zone
generator.writeString(DateTimeFormatter.ISO_ZONED_DATE_TIME.format(value));
return;
}
}
super.serialize(value, generator, provider);
}
useTimestamp(provider)
は に評価されるtrue
ため、application.properties のプロパティは無視されます。
私のコードで何が間違っている可能性がありますか?