如何处理前后端交互中雪花ID的精度问题呢?

书欣 Java经验 发布时间:2023-01-24 17:22:28 阅读数:15216 1
下文笔者讲述前后端交互时,ID出现精度丢失的处理方法分享,如下所示

问题说明

工作中使用雪花ID
   该ID在后端中为Long类型
   在前端中为number类型
 由于Long和number的精度不一样
  所以会导致数据精度丢失
 
 如下:
后端数据:12498901275683313
前端数据:12498901275683310
出现这种异常,则会导致前后端数据不一致,会导致莫名其妙的错误
处理雪花ID不一致的情况

修复方法1:

在后端将Long类型转成String再传给前端。
@JsonSerialize(using= ToStringSerializer.class)
private Long id;

修复方法2:

后端使用注解解决前后端交互Long类型精度丢失的问题

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

@Configuration
public class JacksonConfig {
    @Bean
    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
        SimpleModule simpleModule = new SimpleModule();
        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
        objectMapper.registerModule(simpleModule);
        return objectMapper;
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202301/16745522235517.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者