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

news/2025/5/24 2:31:51

缓存商品、购物车

缓存菜品

实现思路 

代码开发

缓存菜品数据 

清理缓存数据

新增菜品

修改菜品

批量删除菜品

起售、停售菜品

抽取到方法 

缓存套餐 

Spring Cache

入门案例

@EnableCaching 

@CachePut 

@Cacheable 

@CacheEvict

代码开发 

导入Spring Cache和Redis相关maven坐标 

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

在用户端接口SetmealController的 list 方法上加入@Cacheable注解 

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


https://dhexx.cn/news/show-5506446.html

相关文章

Spring security详细上手教学(三)密码管理

Spring security详细上手教学(三)密码管理 本章节两部分内容 实现PasswordEncoder使用Spring Security Crypto模块提供的工具 1. 使用 password encoder 通常,系统不会使用纯文本来保存密码,需要进行加密/哈希等一系列处理以加…

Spark-Streaming2

一.有状态转化操作 1. UpdateStateByKey UpdateStateByKey 原语用于记录历史记录,有时,我们需要在 DStream 中跨批次维护状态(例如流计算中累加 wordcount)。针对这种情况,updateStateByKey()为我们提供了对一个状态变量的访问&…

AI-Browser适用于 ChatGPT、Gemini、Claude、DeepSeek、Grok的客户端开源应用程序,集成了 Monaco 编辑器。

一、软件介绍 文末提供程序和源码下载学习 AI-Browser适用于 ChatGPT、Gemini、Claude、DeepSeek、Grok、Felo、Cody、JENOVA、Phind、Perplexity、Genspark 和 Google AI Studio 的客户端应用程序,集成了 Monaco 编辑器。使用 Electron 构建的强大桌面应用程序&a…

缓冲液品牌推荐

Sigma-Aldrich缓冲液是弱酸与其共轭碱、或者弱碱与其共轭酸的溶液。在分析化学应用中,如果样品包含酸性或碱性官能团,反相高效液相色谱(RP-HPLC)通常会使用缓冲液。这类缓冲液可减轻氢/水合氢和氢氧根离子的影响,从而降低pH波动。 流动相缓冲…

《代码整洁之道》第10章 类 - 笔记

类组织 大白话: 这一小节讲的是一个类内部成员(变量、方法)的排列顺序。它不像函数顺序那样有严格的“向下原则”,但也有一些推荐的组织方式,目的是提高类的可读性。核心思想: 垂直距离要短: 互…

在旧版本中打开Anylogic模型

比如你的.alp文件是8.9.0版本的,你的Anylogic软件是8.2.3版本的。 通过使用记事本或类似的文本编辑器打开8.9.0版本模型的.alp文件,然后: 获取实际的AnyLogic构建版本(打开你的AnyLogic,单击“帮助”,然后单击“关于…

淘宝商品主图标题api接口

1、输入淘宝商品id或者链接,点查询 2、查询淘宝商品主图,商品标题,商品价格,卖家旺旺 3、支持api接口

蓝桥杯 1. 确定字符串是否包含唯一字符

确定字符串是否包含唯一字符 原题目链接 题目描述 实现一个算法来识别一个字符串的字符是否是唯一的(忽略字母大小写)。 若唯一,则输出 YES,否则输出 NO。 输入描述 输入一行字符串,长度不超过 100。 输出描述 输…

clickhouse#复制修改数据

需求 在ClickHouse表中存在一些数据,你需要复制其中几行数据,这个复制不是完全复制,额外需要修改其中某几列数据项。 语句 INSERT INTO xxx_table SELECT * REPLACE ({except_value_1} AS {column_name_1},...{except_value_n} AS {colum…

Golang | 搜索表达式

// (( A | B | C ) & D ) | E & (( F | G ) & H )import "strings"// 实例化一个搜索表达式 func NewTermQuery(field, keyword string) *TermQuery {return &TermQuery{Keyword: &Keyword{Field: field, Word: keyword},} }func (tq *TermQuery…