购物车实现逻辑:
购物车实现的功能:
1、将商品添加到购物车中
2、改变购物车商品数量
3、显示购物车的信息
将商品添加到购物车中功能分析如下:
1. 接收到商品ID
2. 根据商品ID查询商品信息
3. 将商品信息加入到购物车中
需要做的逻辑判断
1. 判断购物车是否已有对应商品
2. 如果购物车中没有对应的商品,直接加入
3. 如果购物车中有对应的商品,只要修改商品数量
我的实现步骤:
1. 首先判断当前用户是否登录,如果未登录采用Cookie存储
2. 如果登录则采用Redis存储。
3. 登录后要进行Cookie购物车与Redis购物车的合并操作,并清除Cookie购物车。
为什么未登录状态下不使用Session缓存:
1. session存在时间限制,会定期清空的,而cookie如果不主动清或者设置定期清除则他是不会清除的
2. session是存在服务器的(服务器端),而cookie是本地的(客户端浏览器),如果多人访问服务器要求可想而知。session很吃内存
3. 购物车存放的都是临时的物品,购买之后才产生真正的交易记录
所以这部分数据一般不会放到session中。Cookie是最优的解决方案。
Cookie的优点:
1. 不占用服务端存储空间
2. 用户体验好。
3. 代码实现简单。
如何判断是否登录?
1.从cookie中取token方法 aop