`

Spring boot API 返回前端的Long精度丢失

阅读更多

最近采用了雪花算法作为另外一个IOT项目的分布式主键,但是好像有点毛病。

我期望的数据结果:1360538800409284609

API返回给前端的数据结果:1360538800409284600

 

很明显的精度丢失,最简答的解决办法,全局配置API返回Long to String

/**
 * Long to String for front-end
 */
@Configuration
public class LongToStringJsonConfig extends WebMvcConfigurationSupport {

    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
ObjectMapper objectMapper = new ObjectMapper();
SimpleModule simpleModule = new SimpleModule();
simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
objectMapper.registerModule(simpleModule);
jackson2HttpMessageConverter.setObjectMapper(objectMapper);
converters.add(jackson2HttpMessageConverter);
}
}

 

轻松解决。

 

(我们是否应该在数据设计上真正的改变这个取值?)

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics