Jackson配置
在启动项目时,我们发现日志打印出这样几行字,初始化了jacdson配置,我们去查看一下来源找。
我们找到了一个全局序列化配置类,其中重写了BigNumberSerializer.INSTANCE进去查看
发现了这里对于部分范围的数字进行了转为为字符串的操作。为什么呢?
打开配置我们能发现,项目采用了mp的雪花id作为主键,而雪花id为19位,传到前端会导致精度的缺失,因此,超过该范围的全部转为字符串,其他默认原来的类型。
当然,也可以直接一股脑全部转为字符串。。。
关于jackson这里还做了全局的时间序列化配置
相关问题:(147条消息) @JsonFormat 和 @DateTimeFormat 的区别与使用?_初见qwer的博客-CSDN博客
解释如下
p6spy插件
我们发现项目运行时会打印sql,这是配置了p6spy插件。读者可自行了解
StopWatch()定时器
我们发现每次请求都会出现一个开始时间与结束时间
与请求的开始与结束相关,很容易就想到一个拦截器HandlerInterceptor
在请求进入controller层之前进行记时,请求结束时停止计时。
这里定义了一个threadlocal用于存放计时器threadlocal(),采用threadlocal也是个常见的方法了,我们通常会在HandlerInterceptor里面使用threadlocal存放用户信息啥的,方便在整个请求当中方便获取用户信息不过这个项目中用到了SaToken来解决权限相关问题,这里只是用HandlerInterceptor,threadlocal,threadlocal()来计算请求用时
StopWatch()定时器的使用比较简单,可参考下面的连接。
(147条消息) SpringBoot——》StopWatch 计时器_小仙。的博客-CSDN博客
不过要注意的是,ruoyi-plus项目中用的是commons.lang3包提供的工具类,不是原来spring自带的,用法差不多,api不太一样。。。。。。。。。。。。我还折腾半天为啥会爆红。。。。。。