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

缓存商品、购物车

缓存菜品

实现思路

代码开发

缓存菜品数据

清理缓存数据

新增菜品

修改菜品

批量删除菜品

起售、停售菜品

抽取到方法

缓存套餐

[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接口中创建删除购物车数据的方法

相关推荐
christine-rr3 小时前
linux常用命令(4)——压缩命令
linux·服务器·redis
ByteBlossom4 小时前
MySQL 面试场景题之如何处理 BLOB 和CLOB 数据类型?
数据库·mysql·面试
玉衡子4 小时前
九、MySQL配置参数优化总结
java·mysql
麦兜*4 小时前
MongoDB Atlas 云数据库实战:从零搭建全球多节点集群
java·数据库·spring boot·mongodb·spring·spring cloud
麦兜*4 小时前
MongoDB 在物联网(IoT)中的应用:海量时序数据处理方案
java·数据库·spring boot·物联网·mongodb·spring
汤姆yu4 小时前
基于springboot的毕业旅游一站式定制系统
spring boot·后端·旅游
-Xie-4 小时前
Mysql杂志(十六)——缓存池
数据库·mysql·缓存
玉衡子4 小时前
八、MySQL全局优化总结&MySQL8新特性
java·mysql
七夜zippoe4 小时前
缓存与数据库一致性实战手册:从故障修复到架构演进
数据库·缓存·架构
计算机毕业设计木哥5 小时前
计算机毕设选题推荐:基于Java+SpringBoot物品租赁管理系统【源码+文档+调试】
java·vue.js·spring boot·mysql·spark·毕业设计·课程设计