项目介绍:
主要记录商品甄选的每日实现过程
分类缓存接口实现:
商品的分类数据一般不会过多的修改,因此可以将分类数据进行缓存,提高页面的加载速度
实现技术:
接口主要采用RedisTemplate以及SpringCache去实现商品分类接口的开发
实现思路:
将首页接口获取一级分类数据的缓存
将所有分类数据做缓存
特别说明:分类数据共用三级分类,其中首页中一级分类的数据采取RedisTemplate实现,查询所有的分类数据采取SpringCache实现
接口一实现过程:
首先需要引入redis的起步依赖,即在对应模块下导入
其次需要在该模块配置文件中添加如下redis的相关配置:
最后是具体代码实现:
导入RedisTemplate的相关bean,直接查询redis,约定一级分类数据Key为categoryOne,然后对查询结果进行非空判断,若不为空,则调用JSON中parseArray方法将查询到的集合数据转化为list集合进行返回,若为空,则先去数据库中查出所有的一级分类进行返回,然后将其存储到redis中,同理,将数据库得到的集合转换为字符串类型,并且设置过期时间后存储完成。
接口二实现过程:
此次接口是采用SpringCache进行缓存,查询三层商品分类数据且缓存到redis中
首先需要在对应模块中添加cache的依赖:
然后在模块中添加一个配置类,配置redis的key的序列化器:
然后需要在该模块启动类上添加@EnableCaching注解以开启缓存支持:
最后我们在对应的实现类上添加@Cacheable注解,框架会根据我们在注解上(value = "category" , key = "'all'")添加的value和key值作为缓存到redis的数据定义名称,即为:category::all
商品列表接口实现:
实现思路:
首先商品列表所实现的功能为当点击首页的一级分类,点击分类频道的三级分类以及首页的畅销商品时,都会进入商品列表。所以我们需要完成两个接口:即查询所有品牌接口->用于商品列表页面,商品列表条件分页接口->当点击一级分类,二级分类,三级分类,品牌及排序时,都是进行商品的条件查询
查询所有品牌:
就是简单的三层调用和简单的sql查全部语句的实现,操作表为brand品牌表;
条件分页查询:
传入当前页与每页记录数,和封装好的条件查询VO对象。调用service层进行分页条件查询:
注意返回值为PageInfo,最后Sql语句采用动态sql实现
商品详情接口实现:
实现思路:
当点击一个商品时,需要将商品的基本信息,sku信息,轮播图信息,图片详情信息,商品规格信息,当前商品的sku对应的规格属性全部展示出来,此时设计到三张表的查询,商品表->基本信息;商品SKU表->sku信息,商品详情表->图片详情