springboot jackson自动配置默认不是将Date类型转换为时间戳

时间:2024-03-23 21:09:19

springboot jackson自动配置默认不是将Date类型转换为时间戳

JacksonAutoConfiguration自动配置的代码设置了不开启将Date类型转换为时间戳,而是使用DateFormat进行了转换

如果想要开启Date类型转换为时间戳,可以在application.yml  文件中增加如下配置,开启date类型转时间戳

spring:
  jackson:
    serialization: {WRITE_DATES_AS_TIMESTAMPS: true}

 

或者开启@EnableWebMvc,就不会触发springboot的WebMvcAutoConfiguration自动配置

WebMvcAutoConfiguration自动配置会引用JacksonHttpMessageConvertersConfiguration

的内容,会导致messageConvertes中的

MappingJackson2HttpMessageConverter有两个,如下:

springboot jackson自动配置默认不是将Date类型转换为时间戳

一个由JacksonHttpMessageConvertersConfiguration自动配置,默认不将Date转换为时间戳

一个由WebMvcConfigurationSupport的getMessageConverters方法添加,默认将Date转换为时间戳

 

RequestResponseBodyMethodProcessor使用的是JacksonHttpMessageConvertersConfiguration自动配置,所以出现该问题,

解决方案上面已经提到。