加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

干货 | 京东购物车的Java架构实现及道理!

发布时间:2018-07-09 12:09:49 所属栏目:教程 来源:Java技术栈
导读:【资讯】本日来写一下关于购物车的对象, 这里起首抛出四个题目: 1)用户没登岸用户名和暗码,添加商品, 封锁赏识器再打开后 不登任命户名和暗码 问:购物车商品还在吗? 2)用户登岸了用户名暗码,添加商品,封锁赏识器再打开后 不登任命户名和暗码 问:购物车商
副问题[/!--empirenews.page--]

  【资讯】本日来写一下关于购物车的对象, 这里起首抛出四个题目:

  1)用户没登岸用户名和暗码,添加商品, 封锁赏识器再打开后 不登任命户名和暗码

  问:购物车商品还在吗?

  2)用户登岸了用户名暗码,添加商品,封锁赏识器再打开后 不登任命户名和暗码

  问:购物车商品还在吗?

  3)用户登岸了用户名暗码,添加商品, 封锁赏识器,然后再打开,登岸用户名和暗码

  问:购物车商品还在吗?

  4)用户登岸了用户名暗码,添加商品, 封锁赏识器 外地田园打开赏识器 登岸用户名和暗码

  问:购物车商品还在吗?

  上面四个题目都是以京东为模板, 那么各人猜猜功效是什么呢?

  1)在

  2)不在了

  3)在

  4)在

  假如你可以或许猜到谜底, 那么声名你真的很棒, 那么关于这四点是怎么实现的呢? (假若有不承认的小搭档可以用京东尝试一下)

  下面我们就来讲授下购物车的道理,最后再来说下详细的code实现.

  1)用户没有登录, 添加商品, 此时的商品是被添加到了赏识器的Cookie中, 以是当再次会见时(不登录),商品如故在Cookie中, 以是购物车中的商品照旧存在的.

  2)用户登录了,添加商品, 此时会将Cookie中和用户选择的商品都添加到购物车中, 然后删除Cookie中的商品. 以是当用户再次会见(不登录),此时Cookie中的购物车商品已经被删除了, 以是此时购物车中的商品不在了.

  3)用户登录, 添加商品,此时商品被添加到数据库做了耐久化存储, 再次打开登任命户名和暗码, 该用户选择的商品必定照旧存在的, 以是购物车中的商品照旧存在的.

  4)来由3)

  这里再说下 没登录 生涯商品到Cookie的利益以及生涯到Session和数据库的比拟:

  1:Cookie: 利益: 生涯用户赏识器(不消挥霍我们公司的处事器) 弱点:Cookie禁用,不提供生涯

  2:Session:(Redis : 挥霍大量处事器内存:实现、禁用Cookie) 速率很快

  3:数据库(Mysql、Redis、SOlr) 能耐久化的就数据库 速率太慢

  那么我本日要讲的就是:

  用户没登岸:购物车添加到Cookie中

  用户登岸: 生涯购物车到Redis中 (不消数据库)

  整体的思绪图解:

  干货 | 京东购物车的Java架构实现及道理!

  接下来就是代码实例来实现 购物车的成果了:

  起首我们看下购物车和购物项两个JavaBean的计划:

  购物车: buyerCart.java

  干货 | 京东购物车的Java架构实现及道理!

  干货 | 京东购物车的Java架构实现及道理!

  干货 | 京东购物车的Java架构实现及道理!

  这里行使了@JsonIgonre注解是由于下面必要将BuyerCart 转换成Json名目, 而这几个字段只有get 要领, 以是不能转换, 必要行使忽略Json.

  下面是购物项: buyerItem.java

  干货 | 京东购物车的Java架构实现及道理!

  干货 | 京东购物车的Java架构实现及道理!

  1、将商品插手购物车中

  干货 | 京东购物车的Java架构实现及道理!

  干货 | 京东购物车的Java架构实现及道理!

  这里传入的参数是skuId(库存表的主键, 库存表生涯的商品id,颜色,尺码,库存等信息), 购置数目amount.

  接着我们来看Controller是怎样来处理赏罚的:

  干货 | 京东购物车的Java架构实现及道理!

  干货 | 京东购物车的Java架构实现及道理!

  干货 | 京东购物车的Java架构实现及道理!

  这里计一律个常识点: 将工具转换成json字符串/json字符串转成工具

  我们在这里先写一个小的Demo来演示json和工具之间的互转, 这里行使到了springmvc中的ObjectMapper类.

  干货 | 京东购物车的Java架构实现及道理!

  执行功效:

  干货 | 京东购物车的Java架构实现及道理!

  这里我们行使了Include.NON_NULL, 假如TestTb 中属性为null 的就不给转换成Json, 从工具-->Json字符串 用的是 objectMapper.writeValue(). 从Json字符串-->工具行使的是objectMapper.readValue().

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读