首页 > 编程语言 >雪花算法导致前端精度丢失的配置

雪花算法导致前端精度丢失的配置

时间:2022-09-27 16:34:38浏览次数:48  
标签:jackson FORMAT 雪花 算法 丢失 new import com fasterxml

步骤一:

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
import java.math.BigInteger;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;

/**
* 对象映射器:基于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() {
super();
//收到未知属性时不报异常
this.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);
//反序列化时,属性不存在的兼容处理
this.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

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);
}
}

步骤二:

在WebMvcConfig中重写方法extendMessageConverters

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

 

标签:jackson,FORMAT,雪花,算法,丢失,new,import,com,fasterxml
From: https://www.cnblogs.com/daskache/p/16734994.html

相关文章

  • 通关基本算法 day_08 -- 位运算
    求整数n二进制表示里,第k位数字是几?$$n=15=(1111)_2$$先把第k位移到最后一位n>>k看个位是几x&1总结:n>>k&1例子例如输出10的二进制表达#includ......
  • 分治算法
    简介把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧......
  • java雪花ID
    Reference:https://zhuanlan.zhihu.com/p/374667160为什么使用雪花ID在以前的项目中,最常见的两种主键类型是自增Id和UUID,在比较这两种ID之前首先要搞明白一个问题,就是为什......
  • 基础算法脚本
    将字符串翻转:functionreverseString(str){//法一:/*letarr=[];for(leti=0;i<str.length;i++){arr.unshift(str[i]);}//console.log(arr);//[......
  • debug = false 以后 无法加载静态文件 以及 admin后台管理系统样式丢失
    urls.py中fromdjango.views.staticimportservefromzaobaobiaoimportsettingsurlpatterns=[path('admin/',admin.site.urls),#主页path('',......
  • 计算空间物体包围球的两种算法实现_charlee44的博客
    1.概述在进行二维空间几何运算的之前,往往会用包围盒进行快速碰撞检测,从而筛掉一些无法碰撞到的可能。而在三维中,比较常用的就是包围球了。当然,如何计算包围球是一个问题......
  • 力扣算法第1题--两数之和(暴力题解&优化题解)
    两数之和题目描述:给定一个整数数组nums 和一个整数目标值target,请你在该数组中找出和为目标值target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输......
  • Java实现SHA1单向加密算法
    importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;publicclassSha1Util{publicStringsha1(Stringdata)throwsNoSuch......
  • 算法练习-第五天【哈希表】
    哈希表242.有效的字母异位词参考:代码随想录242.有效的字母异位词看完题目的第一想法本题最直接的做法就是两层for循环,暴力解题,时间复杂度O(\(n^2\))。因为题目只包含......
  • 算法第二章心得
    1.请以伪代码描述最大字段和的分治算法将序列a[1:n]分成长度相等的两段a[1:n/2]和a[n/2+1:n],则a[1:n]的最大子段和有三中情形:在[1,n/2]内;在[n/2+1,n]内;在起点位于[1,n/2......