spring mvc 设置允许responsebody序列化SerializationFeature.WRITE_DATES_AS_TIMESTAMPS

Life is short , "play" more!
本文来自lihao's Blog,转载请注明。

问题:
使用spring boot 2.0 后, 较新的spring mvc HttpMessageConverters 如果存在jackson 库时,则默认使用自动配置的Jackson2ObjectMapperBuilder生成的转换器对消息进行转化。 序列化的结果可能并不是我们期望的,这时我们需要通过设置。 spring的官方文档地址: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-spring-mvc.html#howto-customize-the-jackson-objectmapper

例如下代码:

return 的对象,会自动被springmvc 将java object 序列化成json或者xml 返回给http client客户端。(序列化城json还是xml,取决于客户端请求的accept参数值) 序列化的规则,是spring mvc 默认的序列化方式,如果我们需要改变默认的序列化方式时,则需要针对序列化的特性特定进行配置。

例如: sqlResponseVo中的jsonarray中包含了sql date类型,例如 [{“date”:时间值}], 那么返回给客户端的json 则date会直接转化为 格式化的时间格式 “2019-06-25T00:10:10 000Zxxx” 。 如果我们想返回时间戳(java时间秒的话),则需要针对Jackson2ObjectMapperBuilder 自动生成的消息转换器进行参数配置。

我们只需要在spring boot 的application.properties 中添加如下配置即可。

如果仅仅通过修改配置无法达到我们的期望时,我们就需要进行开发自定义的http message converter了。

此篇文章已被阅读95 次


发表评论

电子邮件地址不会被公开。 必填项已用*标注