当前位置: 首页 > news >正文

Java 解决long类型数据在前后端传递失真问题

问题:雪花算法的id长度为19位,前端能够接收的数字最多只能是16位的,因此就会造成精度丢失,得到的ID不是真正的ID。

解决:

在拦截器中加入Long类型转换,返回给前端string

package io.global.iot.common.config;import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;@Configuration
public class MvcConfiguration implements WebMvcConfigurer {@Overridepublic void extendMessageConverters(List<HttpMessageConverter<?>> converters) {MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();ObjectMapper objectMapper = new ObjectMapper();objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);JavaTimeModule javaTimeModule = new JavaTimeModule();javaTimeModule.addSerializer(LocalDateTime.class,new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));javaTimeModule.addSerializer(Long.class, ToStringSerializer.instance);javaTimeModule.addSerializer(Long.TYPE, ToStringSerializer.instance);objectMapper.registerModule(javaTimeModule);messageConverter.setObjectMapper(objectMapper);converters.add(0, messageConverter);}}

http://www.lryc.cn/news/167302.html

相关文章:

  • IDEA的快捷键大全
  • 简单记一下Vue router 路由中使用 vue-i18n 进行标题国际化
  • 【Gitea】 Post “http://localhost:3000/api/internal/hook/pre-receive/aa/bbb“ 异常
  • 如何使用element-ui相关组件如:el-select,el-table,el-switch,el-pagination,el-dialog
  • 微信小程序+echart实现点亮旅游地图
  • Git(8)——Git命令总结
  • 9.15 滴滴笔试
  • 有趣的设计模式——适配器模式让两脚插头也能使用三孔插板
  • 2.10 PE结构:重建重定位表结构
  • 关于content-type的理解
  • <图像处理> 空间滤波基础二
  • Java中的队列Queue
  • 机器学习技术(十)——决策树算法实操,基于运营商过往数据对用户离网情况进行预测
  • 大数据之-kafka学习笔记
  • 虚幻动画系统概述
  • 什么是集成测试?集成测试方法有哪些?
  • elementUI中的el-form常用校验规则
  • 蓝桥杯打卡Day9
  • C# 辗转相除法求最大公约数
  • 腾讯mini项目-【指标监控服务重构】2023-08-03
  • redis缓存穿透、击穿、雪崩介绍
  • Redis 基础总结
  • 基于nginx的tomcat负载均衡和集群(超简单)
  • ESIM实战文本匹配
  • 基于虚拟仿真技术的汽车燃油泵控制
  • angular:HtmlElement的子节点有Shadow dom时奇怪的现象
  • 栈与队列--删除字符串中的所有相邻重复项
  • 使用SSH地址拉取远程仓库代码报下面的错误
  • easycms v5.5 分析 | Bugku S3 AWD排位赛
  • 成都营运《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作