当前位置: 首页 > news >正文

淘宝客是如何做网站与淘宝对接的为什么用花生壳做的网站老刷新

淘宝客是如何做网站与淘宝对接的,为什么用花生壳做的网站老刷新,做网站包含的技术,如何做英文网站最近公司的一个项目组要把以前的单体应用进行为服务拆分#xff0c;表的ID主键使用Mybatis plus默认 的雪花算法来生成。 快下班的时候#xff0c;小伙伴跑过来找我#xff0c;#xff1a;“快给我看看这问题#xff0c;卡这卡了小半天了#xff01;”。连拉带拽#x…最近公司的一个项目组要把以前的单体应用进行为服务拆分表的ID主键使用Mybatis plus默认 的雪花算法来生成。 快下班的时候小伙伴跑过来找我“快给我看看这问题卡这卡了小半天了”。连拉带拽连哄带骗的把我拉到他的电脑前面。这位小伙伴在我看来技术不算是大牛但经验也很丰富了。他都卡了半天的问题应该不是小问题如果我一时半会搞不定真的是耽误我下班了所以我很不情愿的在他的位置坐了下来。 一、现象是这样的 下面我把异常的现象给大家描述一下小伙伴建了一张表表的主键是id BigINT用来存储雪花算法生成的ID嗯这个没有问题 CREATE TABLE user (id BIGINT(20) NOT NULL COMMENT 主键ID,#其他字段省略 );使用Long 类型对应数据库ID数据。嗯也没有问题雪花算法生成的就是一串数字Long类型属于标准答案 Data public class User {private Long id; //其他成员变量省略在后端下断点。看到数据响应以JSON响应给前端正常 { id1297873308628307970, //其他属性省略 }最后这条数据返回给前端前端接收到之后修改这条数据后端再次接收回来。奇怪的问题出现了后端重新接收回来的id变成了12978733086283000000不再是1297873308628307970 二、分析问题 我的第一感觉是开发小伙伴把数据给搞混了张冠李戴了把XXX的对象ID放到了YYY对象的ID上。所以就按照代码从前端到后端、从后端到前端调试跟踪了一遍。 从代码的逻辑角度上没有任何问题。这时我有点烦躁了真的是耽误我下班了但开工没有回头箭既然坐下来了就得帮他解决不然以后这队伍怎么带想到这我又静下心来开始思考。 1297873308628300000 --- 1297873308628307970这两个数长得还挺像的似乎是被四舍五入了。此时脑袋里面冒出一个想法是精度丢失了么哪里能导致精度丢失 服务端都是Long类型的id不可能丢失前端是什么类型JSON字符串转js对象接收Long类型的是number 上网查了一下Number精度是16位雪花ID是19位的SoJS的Number数据类型导致的精度丢失。问题是找到了 小伙伴投来敬佩的眼光5分钟就把这问题发现了。可是发现了有什么用得解决问题啊 三、解决问题 开发小伙伴说那我把所有的数据库表设计id字段由Long类型改成String类型吧。我问他你有多少张表他说100多张吧。 100多张表还有100多个实体类需要改还有各种使用到实体类的Service层要改Service等改完Controller层要改关键的是String和Long都是常用类型他还不敢批量替换 小伙伴拿起电话打算订餐说今晚的加班是无法避免了。我想了想说你最好别改String做ID查询性能会下降我再想想后端A到前端B出现精度丢失要么改前端要么改后端要么…… 。“哎哎你等等先别订餐后端A到前端B你用的什么做的序列化” 小伙伴告诉我说使用的是Jackson这就好办了Jackson我熟悉啊 解决思路后端的ID(Long) Jackson(Long转String) 前端使用String类型的ID,前端使用js string精度就不会丢失了。 那前端再把String类型的19位数字传回服务端的时候可以用Long接收么当然可以这是Spring反序列化参数接收默认支持的行为。 最终方案就是前端用String类型的雪花ID保持精度后端及数据库继续使用Long(BigINT)类型不影响数据库查询执行效率。 剩下的问题就是在Spring Boot应用中使用Jackson进行JSON序列化的时候怎么将Long类型ID转成String响应给前端。方案如下 Configuration public class JacksonConfig {BeanPrimaryConditionalOnMissingBean(ObjectMapper.class)public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder){ObjectMapper objectMapper builder.createXmlMapper(false).build();// 全局配置序列化返回 JSON 处理SimpleModule simpleModule new SimpleModule();//JSON Long StringsimpleModule.addSerializer(Long.class, ToStringSerializer.instance);objectMapper.registerModule(simpleModule);return objectMapper;}}小伙伴放下电话 再次投来敬佩眼光。“走吧一起下班”我和小伙伴说小伙伴一路上一直问我你是怎么学习的我冠冕堂皇的说了一些多想多学多问之类的话。 其实我心里在想我是一个懒人但我不能说。能躺着绝不坐着能自动绝不手动能打车绝不自己开车。第一次就把事情做对才是省时省力做好的方法这么多年的“懒”决定了我需要去思考更多的“捷径”思考“捷径”的过程是我不断进阶的诀窍勤奋的人是社会的生产力而懒人是社会的创造力
http://www.w-s-a.com/news/896929/

相关文章:

  • 单县网站惠州seo计费
  • 万网网站建设 优帮云怎样用记事本做网站
  • 注册域名后网站建设百度指数的功能
  • 怎么做伪静态网站山西网站建设设计
  • 做小型企业网站多少钱衡阳市建设局网站
  • 金华专业网站建设公司网站建设空间和服务器方式
  • 自己做的网站在浏览器上显示不安全吗wordpress revolution slider
  • 西安网站建设推广优化搜索引擎营销
  • 互联网站备案管理工作方案 工信部注册深圳公司需要什么条件
  • 网站网站服务器网站建设 物流
  • 国外开发网站手机网站建设制作
  • 怎么把自己做的网站传网上青岛工程建设监理公司网站
  • 网站301跳转效果商丘网站公司
  • 公司网站建设西安网站的架构与建设
  • 食品科技学校网站模板花溪村镇建设银行网站
  • 图片渐隐 网站头部flash地方志网站建设自查报告
  • 深圳做商城网站视觉品牌网站建设
  • 永康电子商务网站建设弹幕网站怎么做
  • 百川网站企业做网站要注意哪些
  • 球迷类的网站如何做网站建设需要哪些素材
  • 请问有重庆有做网站吗电子政务系统网站建设的基本过程
  • 建设银行管方网站官网最新版cmsv6
  • 网站开发工程师需要会写什么深圳网站(建设信科网络)
  • 台州网站搭建网站建设需求计划
  • 网站app免费下载软件大全大连百度推广哪家好
  • 网站建设的面试要求iis做的网站手机怎么访问
  • 定州市住房保障和城乡建设局网站上海网站建设排行
  • 网站发帖百度收录网站改版后不收录
  • 昆明建设局网站号码网站开发 浏览器兼容性
  • 湖北专业网站建设大全室内设计联盟app下载