购物车的设计与思路
1:在做任何业务的时候,首先要做的是把思路的流程捋清楚。再进行代码的编写,以及实现!
2:对业务涉及到的技术,如果没接触过的,首先要学习至会用为止。
3:如果思路不是很清楚的,可以查找类似的案列情况,学习思路流程。
4:具体的业务情况,还是要根据自己的情况,进行设计。
开始讲购物车,涉及的技术知识
1:Cookie —>cookie数据存放在客户的浏览器上
2:Session —>session数据放在服务器上
3:Redis —>储存的数据类型:(字符串) String, (集合) List, (哈希) hash, (集合) set, (有序集合) sorted set)
先看几个图片吧
这是京东的购物流程(用户未登录的情况下的)
这是用户登录以后的流程。就拿买手机举例子。
同一个手机,比如荣耀20,不同参数的价格不同(6+64G的,和8+128G的)
这个例子是为了说明,价格不一定在商品表内。
价格表可能是独立出来的一张表,且与商品表是多对一的关系
商品表(一)-----------> 价格表(多)
这里,我把表结构设计一下
Product 商品表 (可以在数据库建表)
Price 价格类别表 (可以在数据库建表)
ShoppingCart 购物车类 (暂存表,数据存到Redis中去)
ShoppingItem 购物项类 (暂存表,数据存到Redis中去)
搭建SpringBoot项目工程
引入相关的依赖,关于jedis的,fastjson的依赖
Swagger是接口测试的工具。(有兴趣的可以看看我写的有一篇关于Swagger的文章,简单配置使用)
这里,持久层 我用的是JPA,不是Mybatis
<!-- 引入Swagger的依赖工具 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2<