代码之家  ›  专栏  ›  技术社区  ›  Marcel Stör

将Jackson功能WRITE\u DATES\u设置为时间戳在Spring Boot中不起作用

  •  13
  • Marcel Stör  · 技术社区  · 8 年前

    spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS=false 在Spring引导配置中,但Jackson序列化程序仍会生成 [1942,4,2] "1942-04-02" 对于 DateTime 价值

    • org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration.Jackson2ObjectMapperBuilderCustomizerConfiguration.StandardJackson2ObjectMapperBuilderCustomizer#customize

      configureFeatures(builder, this.jacksonProperties.getSerialization());

    • org.springframework.http.converter.json.Jackson2ObjectMapperBuilder#configure 有一个回路

      for (Object feature : this.features.keySet()) { configureFeature(objectMapper, feature, this.features.get(feature)); }

      再一次 this.features

    • 然而在一个 com.fasterxml.jackson.datatype.jsr310.ser.JSR310FormattedSerializerBase#useTimestamp 说false是因为 provider.isEnabled(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) 返回false。

    试图修复

    1 回复  |  直到 8 年前
        1
  •  19
  •   Andy Wilkinson    8 年前

    弹簧靴采用 WebMvcConfigurationSupport bean表示您希望完全控制Spring MVC的配置。您通常会通过使用 @EnableWebMvc WebMVC配置支持 .

    如果您子类 WebMvcConfigurerAdapter 而不是 WebMVC配置支持

    Spring Boot对Spring MVC的自动配置的一部分是将其配置为使用自动配置的 ObjectMapper 用于HTTP消息转换。如果您关闭Boot对Spring MVC的自动配置,它将使用自己的、单独的 spring.jackson.* 配置设置。

    推荐文章