主键
分布式,一些主键生成的是雪花算法19位,如果返回到前端Long类型存在精度丢失问题 有时候我们数据库表的主键会设置为Long类型,这时候如果使用雪花算法或者其他手段,在插入数据库时数值是20位的数,这时候返回给前端就会造成精度丢失,以下是用注解方式解决该问题。
FastJson序列机制下的项目
@JSONField(serializeUsing = ToStringSerializer.class)
private Long id;
Jackson序列机制下的项目
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long id;
springboot的内置的默认的序列化方式是jackson
在@SpringBootApplication类中添加
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
//创建FastJson信息转换对象
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
//创建FastJson对象并设定序列化规则
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
fastJsonHttpMessageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON_UTF8));
//规则赋予转换对象
fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
return new HttpMessageConverters(fastJsonHttpMessageConverter, new StringHttpMessageConverter(Charset.forName("UTF-8")));
}