首页 > 其他分享 >sky-take-out chapter 6

sky-take-out chapter 6

时间:2024-09-05 09:25:41浏览次数:4  
标签:chapter 缓存 sky 购物车 功能测试 缓存数据 take 菜品 注解

缓存商品、购物车

缓存菜品

(1)问题说明
如果用户量访问量比较大,数据库访问压力随之增大
(2)实现思路
通过redis缓存菜品数据,减少数据库查询操作

缓存逻辑分析:

  • 每个分类下的菜品保存一份缓存数据
  • 数据库中菜品数据有变更时(新增菜品、修改菜品、批量删除菜品、起售停售菜品)清理缓存数据
    (3)代码开发
    (4)功能测试

缓存套餐

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

Spring Cache提供了一层抽象,底层可以切换不同的缓存实现,例如:

  • EHCache
  • Caffeine
  • Redis

常用注解:

  • EnableCaching 开启缓存注解功能,通常加在启动类上
  • Cacheable 在方法执行前先查询缓存中是否有数据,如果有数据,则直接返回缓存数据;如果没有缓存数据,调用方法并将方法返回值放到缓存中
  • CachePut 将方法的返回值放到缓存中
  • CacheEvict 将一条或多条数据从缓存中删除

(2)实现思路

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

(3)代码开发
(4)功能测试

添加购物车

  • 判断当前加入带购物车中的商品是否已经存在了
  • 如果已经存在了,只需要将数量加一
  • 如果不存在,需要插入一条购物车数据

查看购物车

(1)需求分析和设计
(2)代码开发
(3)功能测试

清空购物车

标签:chapter,缓存,sky,购物车,功能测试,缓存数据,take,菜品,注解
From: https://www.cnblogs.com/jhhhred/p/18397708

相关文章

  • 前端vue项目 git commit msg 文字校验实现,利用husky 和 commitlint实现
    husky安装使用说明husky作用是创建git钩子,然后触发命令执行安装yarnaddhusky初始化npxhuskyinit会出现下面文件夹commitlint安装和使用安装commitlintyarnaddcommitlint安装校验规则库@commitlint/config-conventionalyarnadd@commitlint/co......
  • vue项目利用git commit 触发执行 eslint检查,使用husky 和 lint-staged
    lint-staged安装和使用说明lint-staged是一个插件,为了方便触发eslint,配置哪些文件触发eslintstylelint等安装yarnaddlint-staged创建.lintstagedrc在根目录{"*.vue":"eslint","*.ts":"eslint","*.tsx":"eslint&quo......
  • Chapter4 Writing Your First Kernel Module - LKMs Part 1
    Chapter1KernelWorkspaceSetupChapter2Buildingthe5.xLinuxKernelfromSource,Part1Chapter3Buildingthe5.xLinuxKernelfromSource,Part2Chapter4WritingYourFirstKernelModule–LKMsPart1Chapter5WritingYourFirstKernelModule–......
  • Chapter2 监督学习
    参考学习书目:UnderstandingDeeplearning记录一下学习该书的过程。监督学习:监督学习模型是将一个或多个出入转化为一个或多个输出的方式。这个模型可以理解为一个数学公式,把输入放在公式里进行计算,得到的结果就是推理,而公式中包含一些参数,改变参数会改变计算的结果。而我......
  • chapter15------任务切换
    任务切换的基本方式(简介)协同式从一个任务切换到另一个任务时,需要当前任务主动地请求暂时放弃执行权,或者在通过调用门请求操作系统服务时,由操作系统将控制转移到另一个任务任务的切换取决于每个任务的“自律性”抢占式可以安装一个定时器中断,并在中断服务程序中实施任务......
  • Chapter 05 计算属性
    欢迎大家订阅【Vue2+Vue3】入门到实践专栏,开启你的Vue学习之旅!文章目录前言一、基础语法二、计算属性vs方法三、完整写法前言Vue.js提供了丰富的功能,帮助开发者高效地构建用户界面。本篇文章详细讲解了其计算属性的基本语法、应用场景以及性能差异。一、基......
  • sky-take-out chapter 5
    微信登录商品浏览HttpClient(1)介绍就是一个客户端编程工具包,更直白点就是我们可以在java程序中通过HttpClient这个工具包来构造http请求,并且可以来发送http请求;要使用httpclient就需要再java程序中导入maven坐标。核心API:HttpClient实际上是一个接口,使用它可以来发送一个h......
  • B站宋红康JAVA基础视频教程个人笔记chapter08-09(异常处理+多线程)
    文章目录1.异常处理方式1:try-catch-finally2.异常处理方式1:throws3.程序,进程,线程的区别4.线程的创建4.1线程的创建方式1:4.2线程的创建方式2:5.线程类的常用方法和生命周期5.1线程的生命周期jdk5之前6.线程的安全问题和同步机制6.线程之间的通信6.1为什么需要线程之间......
  • Chapter 03 Vue指令(下)
    欢迎大家订阅【Vue2+Vue3】入门到实践专栏,开启你的Vue学习之旅!文章目录前言一、v-on指令二、v-for指令三、v-bind指令四、v-model指令前言在Vue.js中,指令是带有v-前缀的特殊属性,不同属性对应不同的功能。通过学习不同的指令,我们能够灵活应对多种业务场景......
  • Chapter 02 Vue指令(上)
    欢迎大家订阅【Vue2+Vue3】入门到实践专栏,开启你的Vue学习之旅!文章目录前言一、v-text指令二、v-html指令三、v-show指令四、v-if指令五、v-else指令六、v-else-if指令前言在Vue.js中,指令是带有v-前缀的特殊属性,不同属性对应不同的功能。通过学习不同的指......