记一次UAT环境,data类型详情时间戳,列表正常问题
首先本文配置了该序列化器:https://blog.csdn.net/weixin_38423383/article/details/106241916
问题
详情界面还是返回的未经处理的时间戳,甚至使用
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”, timezone = “GMT+8”)
也不生效,然后开始追踪源码
首先从RequestResponseBodyMethodProcessor.handleReturnValue开始查看返回值处理
进入AbstractMessageConverterMethodProcessor.writeWithMessageConverters
关键代码->
设置条件过滤器查看spring返回前端序列化器MappingJackson2HttpMessageConverter
发现在进行序列化之前由
outputValue = getAdvice().beforeBodyWrite(outputValue, returnType, selectedMediaType,
(Class<? extends HttpMessageConverter<?>>) converter.getClass(),
inputMessage, outputMessage);
该行代码已经将我们的返回值处理成JSONObject并且导致时间已经出现问题并没有进入我们的序列化器
发现问题代码(同事书写代码并未通知且书写存在严重问题)
此处代码在序列化前将对象直接使用alibaba的fastJson进行序列化,导致不会进行系统默认的fastJson序列化
尝试使用
@JSONField(format=“yyyy-MM-dd HH:mm”)
发现详情成功序列化
遂删除问题代码