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

缓存商品、购物车

缓存菜品

实现思路

代码开发

缓存菜品数据

清理缓存数据

新增菜品

修改菜品

批量删除菜品

起售、停售菜品

抽取到方法

缓存套餐

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

相关推荐
顽疲7 分钟前
从零用java实现 小红书 springboot vue uniapp(13)模仿抖音视频切换
java·vue.js·spring boot
星辰离彬28 分钟前
Java 与 MySQL 性能优化:MySQL连接池参数优化与性能提升
java·服务器·数据库·后端·mysql·性能优化
nightunderblackcat37 分钟前
新手向:实现ATM模拟系统
java·开发语言·spring boot·spring cloud·tomcat·maven·intellij-idea
超级小忍41 分钟前
Spring Boot 与 Docker 的完美结合:容器化你的应用
spring boot·后端·docker
麦兜*2 小时前
Spring Boot 企业级动态权限全栈深度解决方案,设计思路,代码分析
java·spring boot·后端·spring·spring cloud·性能优化·springcloud
小苹果13572 小时前
阿里云mysql数据丢失,如何通过服务器备份在其他服务器上恢复数据,并获取mysql丢失数据,完成mysql数据恢复
服务器·mysql·阿里云
张璐月3 小时前
mysql join语句、全表扫描 执行优化与访问冷数据对内存命中率的影响
数据库·mysql
ruan1145143 小时前
MySQL4种隔离级别
java·开发语言·mysql
hdsoft_huge7 小时前
SpringBoot 与 JPA 整合全解析:架构优势、应用场景、集成指南与最佳实践
java·spring boot·架构
张先shen9 小时前
Elasticsearch RESTful API入门:基础搜索与查询DSL
大数据·spring boot·elasticsearch·搜索引擎·全文检索·restful