苍穹外卖(缓存商品、购物车)

缓存商品、购物车

缓存菜品

实现思路

代码开发

缓存菜品数据

清理缓存数据

新增菜品

修改菜品

批量删除菜品

起售、停售菜品

抽取到方法

缓存套餐

[Spring Cache](#Spring Cache)

入门案例

@EnableCaching

@CachePut

@Cacheable

@CacheEvict

代码开发

[导入Spring Cache和Redis相关maven坐标](#导入Spring Cache和Redis相关maven坐标)

在启动类上加入@EnableCaching注解,开启缓存注解功能

[在用户端接口SetmealController的 list 方法上加入@Cacheable注解](#在用户端接口SetmealController的 list 方法上加入@Cacheable注解)

[在管理端接口SetmealController的 save、delete、update、startOrStop等方法上加入CacheEvict注解](#在管理端接口SetmealController的 save、delete、update、startOrStop等方法上加入CacheEvict注解)

添加购物车

接口设计

数据库设计

代码开发

创建ShoppingCartController

创建ShoppingCartServiceImpl实现类

创建ShoppingCartMapper接口

创建ShoppingCartMapper.xml

查看购物车

接口设计

代码开发

在ShoppingCartController中创建查看购物车的方法

在ShoppingCartService接口中声明查看购物车的方法

在ShoppingCartServiceImpl中实现查看购物车的方法

功能测试

清空购物车

接口设计

代码开发

在ShoppingCartController中创建清空购物车的方法

在ShoppingCartService接口中声明清空购物车的方法

在ShoppingCartServiceImpl中实现清空购物车的方法

在ShoppingCartMapper接口中创建删除购物车数据的方法


缓存菜品

实现思路

每个分类下的菜品保存一份缓存数据

数据库中菜品数据有变更时清理缓存数据

代码开发

缓存菜品数据

清理缓存数据

修改管理端接口 DishController 的相关方法,加入清理缓存的逻辑,需要改造的方法:

新增菜品

修改菜品

批量删除菜品

起售、停售菜品

新增菜品
修改菜品
批量删除菜品
起售、停售菜品
抽取到方法

缓存套餐

Spring Cache

Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。

入门案例

@EnableCaching

在启动类上加入@EnableCaching注解,开启缓存注解功能

@CachePut
@Cacheable
@CacheEvict

代码开发

导入Spring Cache和Redis相关maven坐标

初始代码已提供

在启动类上加入@EnableCaching注解,开启缓存注解功能
在用户端接口SetmealController的 list 方法上加入@Cacheable注解
在管理端接口SetmealController的 save、delete、update、startOrStop等方法上加入CacheEvict注解

添加购物车

接口设计

数据库设计

代码开发

初始工程已提供DTO

创建ShoppingCartController

创建ShoppingCartServiceImpl实现类

创建ShoppingCartMapper接口

创建ShoppingCartMapper.xml

查看购物车

接口设计

代码开发

在ShoppingCartController中创建查看购物车的方法

在ShoppingCartService接口中声明查看购物车的方法

在ShoppingCartServiceImpl中实现查看购物车的方法

功能测试

清空购物车

接口设计

代码开发

在ShoppingCartController中创建清空购物车的方法

在ShoppingCartService接口中声明清空购物车的方法

在ShoppingCartServiceImpl中实现清空购物车的方法

在ShoppingCartMapper接口中创建删除购物车数据的方法

相关推荐
_下雨天.6 小时前
NoSQL之Redis配置与优化
数据库·redis·nosql
数据库小组6 小时前
MySQL 删库后怎么恢复?binlog2sql 之外,NineData 还能做什么
数据库·sql·mysql·安全·数据·ninedata·删库
独自归家的兔8 小时前
OCPP 1.6 协议详解:StatusNotification 状态通知指令
开发语言·数据库·spring boot·物联网
eggwyw8 小时前
基于SpringBoot和PostGIS的云南与缅甸的千里边境线实战
java·spring boot·spring
lv__pf8 小时前
springboot原理
java·spring boot·后端
itjinyin10 小时前
ShardingSphere-jdbc 5.5.0 + spring boot 基础配置 - 实战篇
java·spring boot·后端
九皇叔叔10 小时前
MySQL 8.0 测试库安装
数据库·mysql
码界筑梦坊11 小时前
356-基于Python的网易新闻数据分析系统
python·mysql·信息可视化·数据分析·django·vue·毕业设计
霸道流氓气质12 小时前
SpringBoot中调用mybatis方法提示映射文件未找到Invalid bound statement(not found)的奇葩解决
spring boot·后端·mybatis
GISer_Jing13 小时前
AI知识学习
人工智能·redis·学习