一、该问题的重现步骤是什么?
1. 对象为Long类型,返回前端的时候,前端精度丢失,需要手动加注解转成字符串类型。
二、你期待的结果是什么?实际看到的又是什么?
能够全局统一自动将Long类型转成字符串
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
4.2.0 开源版 Ubuntu
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
在以前的老版本,加一个这个WebMvcConfig可以统一将返回前端的对象里的Long转成字符串,避免精度丢失。但是4.2.0版本,加了这个之后,会导致Knife4j文档无法打开。如果将converters.add(0, jackson2HttpMessageConverter);中的0改大,加的这个WebMvcConfig 又无法生效
@Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void extendMessageConverters(List<HttpMessageConverter<?>> converters) { MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(); ObjectMapper objectMapper = jackson2HttpMessageConverter.getObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); SimpleDateFormat smt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); objectMapper.setDateFormat(smt); objectMapper.setTimeZone(TimeZone.getTimeZone("GMT+8")); List<MediaType> list = Lists.newArrayList(); list.add(MediaType.APPLICATION_JSON_UTF8); jackson2HttpMessageConverter.setSupportedMediaTypes(list); SimpleModule simpleModule = new SimpleModule(); simpleModule.addSerializer(Long.class, ToStringSerializer.instance); simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance); simpleModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); simpleModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); objectMapper.registerModule(simpleModule); jackson2HttpMessageConverter.setObjectMapper(objectMapper); converters.add(0, jackson2HttpMessageConverter); } }
- 热议问题
-
点击 租户管理- 产品包管理
1
-
物联网平台/blade-iot/openapi/**接口如果做sha1验签的话 前端调用会报个未授权
1
-
前端框架/打包问题
1
-
blade-log日志表一直在写入数据咋回事
1
-
vue2 浏览器请求参数如何隐藏
1
-
物联网boot版本 blade-server能设置多数据源吗
2
-
springCloud服务产生的日志的路径在哪里配置啊
1
-
跨域无法获取 物联平台数据
1
-
数字下发到物联设备多久可以更新完成呢
1
-
组态数据源绑定获取数据失效
1
扫一扫访问 Blade技术社区 移动端