位置: IT常识 - 正文

解决雪花算法生成的ID传输前端后精度丢失(雪花算法workid)

编辑:rootadmin
解决雪花算法生成的ID传输前端后精度丢失

推荐整理分享解决雪花算法生成的ID传输前端后精度丢失(雪花算法workid),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:雪花算法改进,雪花算法的作用,雪花算法workid,雪花算法改进,雪花算法应用场景,雪花算法的作用,解决雪花算法生产问题,雪花算法改进,内容如对您有帮助,希望把文章链接给更多的朋友!

本章目录:

问题描述解决方案修改数据库字段配置MVC全局消息转换器修改Result类 一、问题描述 

在用雪花算法生成的ID传输到前端时,会出现后三位精度丢失

可以看到,我们得到的response为1594605819398193154

而前端展示的为1594605819398193200

这是因为JS是弱语言,前端接收数字类型参数为number

最大接收长度为16位,超出长度则会丢失精度

而JAVA的Long类型长度为19位,所以传输到前端的后三位精度丢失

解决雪花算法生成的ID传输前端后精度丢失(雪花算法workid)

所以我们解决该问题的思路就是:把java里的Long类型转换为String返回给前端

二、解决方案2.1、修改数据库字段

可以把数据库的ID字段从Long改为varchar,不过不建议这样做,这样修改后查询无法走索引,降低了效率

2.2、配置MVC全局消息转换器

我们可以在springmvc的配置类中(也就是继承了WebMvcConfigurationSupport接口的那个配置类)重写extendMessageConverters方法

/** * 扩展mvc框架的消息转换器 * @param converters */ @SneakyThrows @Override protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) { //创建消息转换器对象 MappingJackson2HttpMessageConverter messageConverter=new MappingJackson2HttpMessageConverter(); //设置对象转换器,底层使用Jackson将Java对象转为json messageConverter.setObjectMapper(new JacksonObjectMapper()); //将上面的消息转换器对象追加到mvc框架的转换器集合中 converters.add(0,messageConverter); }

编写一个JacksonObjectMapper类

/** * 对象映射器:基于jackson将Java对象转为json,或者将json转为Java对象 * 将JSON解析为Java对象的过程称为 [从JSON反序列化Java对象] * 从Java对象生成JSON的过程称为 [序列化Java对象到JSON] */public class JacksonObjectMapper extends ObjectMapper { public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd"; public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss"; public JacksonObjectMapper() throws NoSuchFieldException { SimpleModule simpleModule = new SimpleModule() .addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT))) .addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT))) .addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT))) .addSerializer(BigInteger.class, ToStringSerializer.instance) .addSerializer(Long.class, ToStringSerializer.instance) .addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT))) .addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT))) .addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT))); //注册功能模块 例如,可以添加自定义序列化器和反序列化器 this.registerModule(simpleModule); }}

注意:该方法是将所有Long类型都序列化成String的《全局转换》 

2.3、修改Result类型

我这边封装了一个Result类,可以直接用String.valueOf去把Long类型的id转换成String

也可以在Result类里多加一个判断

本文链接地址:https://www.jiuchutong.com/zhishi/297564.html 转载请保留说明!

上一篇:【微信小程序】使用uni-app——开发首页搜索框导航栏(可同时兼容APP、H5、小程序)(微信小程序在哪里找?)

下一篇:前端 - get请求传递数组(前端get请求传数组)

  • airpods pro丢失了能定位找回吗(AirPods pro丢失了一只怎么办)

    airpods pro丢失了能定位找回吗(AirPods pro丢失了一只怎么办)

  • 拼多多总消费账单在哪里看(拼多多总消费账单在哪查)

    拼多多总消费账单在哪里看(拼多多总消费账单在哪查)

  • 淘宝消保保证金已从不可用余额迁出(淘宝消保保证金客服电话)

    淘宝消保保证金已从不可用余额迁出(淘宝消保保证金客服电话)

  • 快看点提现需要身份证吗(快看点提现有门槛吗)

    快看点提现需要身份证吗(快看点提现有门槛吗)

  • 0x0000006b蓝屏什么原因(0x000000006f蓝屏)

    0x0000006b蓝屏什么原因(0x000000006f蓝屏)

  • 手机支付宝关联账号在哪里(手机支付宝关联账号怎么解除)

    手机支付宝关联账号在哪里(手机支付宝关联账号怎么解除)

  • 电脑重装系统后连不上打印机(电脑重装系统后无法连接网络)

    电脑重装系统后连不上打印机(电脑重装系统后无法连接网络)

  • word退格会删除上一行的字(word退格会删除前面的文字是怎么回事)

    word退格会删除上一行的字(word退格会删除前面的文字是怎么回事)

  • 天唐动漫网络连接失败怎么办(天唐动漫为什么看不了漫画)

    天唐动漫网络连接失败怎么办(天唐动漫为什么看不了漫画)

  • 刷宝卸载后里面的信息注销吗(下载了刷宝,为什么打不开)

    刷宝卸载后里面的信息注销吗(下载了刷宝,为什么打不开)

  • 400kb的图片尺寸是多少(400kb的图片尺寸是多少格式JPG)

    400kb的图片尺寸是多少(400kb的图片尺寸是多少格式JPG)

  • 抖音怎么查看所有送礼记录(抖音怎么查看所有关注的人)

    抖音怎么查看所有送礼记录(抖音怎么查看所有关注的人)

  • 微信邀请链接什么时候过期(微信8.0邀请链接)

    微信邀请链接什么时候过期(微信8.0邀请链接)

  • 怎么查手机屏幕刷新率(怎么查手机屏幕是哪个厂家的)

    怎么查手机屏幕刷新率(怎么查手机屏幕是哪个厂家的)

  • wifi需认证是什么意思(wifi提示需要认证)

    wifi需认证是什么意思(wifi提示需要认证)

  • 如何修改淘宝首页(如何修改淘宝首页频道)

    如何修改淘宝首页(如何修改淘宝首页频道)

  • 如何发送淘宝店铺链接(淘宝店铺怎么发布)

    如何发送淘宝店铺链接(淘宝店铺怎么发布)

  • 美团怎么看全年消费(怎么看在美团每年消费总额)

    美团怎么看全年消费(怎么看在美团每年消费总额)

  • 为什么微信二维码收不了钱(为什么微信二维码是空白)

    为什么微信二维码收不了钱(为什么微信二维码是空白)

  • vogal00是华为什么型号(华为手机vogal00什么意思)

    vogal00是华为什么型号(华为手机vogal00什么意思)

  • inaccessibleboot蓝屏(inaccessibleboot蓝屏解决方法)

    inaccessibleboot蓝屏(inaccessibleboot蓝屏解决方法)

  • WIFI信号微弱如何将450M和54M不同路由无线桥接(wifi信号弱了)

    WIFI信号微弱如何将450M和54M不同路由无线桥接(wifi信号弱了)

  • hkwnd.exe是什么进程 作用是什么 hkwnd进程查询(zhp.exe是什么进程)

    hkwnd.exe是什么进程 作用是什么 hkwnd进程查询(zhp.exe是什么进程)

  • VUE之Element-ui文件上传详解(vue element ui教程)

    VUE之Element-ui文件上传详解(vue element ui教程)

  • 用idea创建vue项目(idea可以编写vue吗)

    用idea创建vue项目(idea可以编写vue吗)

  • named-checkconf命令  named配置文件语法检查(named-config)

    named-checkconf命令 named配置文件语法检查(named-config)

  • 增值税专票开错了可以作废吗
  • 进口关税的计算方式
  • 个人所得税0申报表怎么填
  • 专票小数点没打印齐能用吗
  • 油补是福利费还是工资
  • 红字发票抵扣联丢了怎么办
  • 个税填报后怎么撤销申报
  • 不动产租赁属于经营租赁吗
  • 小规模建筑服务需要预缴增值税吗
  • 库存商品盘点的作用表现为
  • 以前年度影响利润吗
  • 强制解除财务负责人
  • 归属于母公司的净资产
  • 什么样的情况可以补缴社保
  • 退休工资缴纳个人所得税税率表
  • 公司清算后未处理财产
  • 非独立核算的分公司如何报税
  • 小规模纳税人实收资本印花税如何交
  • 支付购买机器的价款
  • 遗失发票如何处理
  • 冲减留抵税额
  • 进项税额转出怎么申报
  • 国税发2005 9号 税屋
  • 兼职获得员工旅游资源
  • 年度汇算清缴可以作废吗
  • 多交增值税如何退回
  • 税控设备抵减如何填写报表
  • 坏账损失做哪个科目
  • 贴现扣的钱叫什么
  • 一般纳税人小微企业认定标准
  • 投资活动净现金流为负说明什么
  • 企业三大期间费用是什么
  • 折价购入对投资者而言,是为以后多得利息
  • 公司购车要交哪些税
  • 承兑找零怎么做凭证
  • 物流货损怎样处理
  • yii2.0使用Plupload实现带缩放功能的多图上传
  • 营改增后劳务发票税率
  • 高新技术企业研发费用归集
  • hpdskflt.sys
  • 进程program
  • 营改增后土增税收入
  • 手工帐应交税费明细账
  • winform缓存解决方案
  • 分红派息钱去哪里了
  • 产品注册费会计科目
  • 中国税收居民是什么是中国公民嘛
  • window11预览版怎么样
  • phpcms api
  • 企业为其他企业担保有什么责任
  • 专票不认证有什么风险
  • 税务法是否允许私人经营
  • phpcms使用教程
  • MySQL5.1忘记root密码的解决办法(亲测)
  • 跨年增值税专用发票红字发票怎么开
  • sql server2012使用方法
  • 销售折让怎么写分录
  • 一般纳税人条件要求2020
  • 残疾人工资加计扣除包括社保吗
  • 来料加工成本是多少
  • 当月购买固定资产需要计提吗
  • 上年多计提的费用,今年如何记账
  • 个税手续费返还政策文件
  • 以物易物有什么好处
  • 旅行社开什么票
  • 64位win8怎么安装南天PR2E针式打印机驱动?
  • linux find 查找文件并重命名
  • win7删除搜索历史记录
  • 在Linux系统中安装镜像步骤
  • 围绕摄像机旋转怎么设置
  • msoobe命令
  • ie浏览器怎么设置打开网页在同一个窗口
  • Nodejs事件循环机制图解
  • 数据结构 二叉树什么是孩子数
  • meta-inf文件夹在哪
  • javascript绘制图形
  • javascript总结
  • jquery 动态添加元素
  • 如何在国税网上做企业会计制度备
  • 游艇车船税怎么收
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设