当前位置: 首页 > news >正文

网站301定向深圳电梯广告制作公司网站

网站301定向,深圳电梯广告制作公司网站,有没有在线做动图的网站,罗湖福田app网站开发苍穹外卖实操笔记六—缓存商品#xff0c;购物车功能 一.缓存菜品 可以使用redis进行缓存#xff1b;另外#xff0c;在实现缓存套餐时可以使用spring cache提高开发效率#xff1b;   通过缓存数据#xff0c;降低访问数据库的次数#xff1b; 使用的缓存逻辑#…苍穹外卖实操笔记六—缓存商品购物车功能 一.缓存菜品 可以使用redis进行缓存另外在实现缓存套餐时可以使用spring cache提高开发效率   通过缓存数据降低访问数据库的次数 使用的缓存逻辑 1.每个分类下保存一份缓存数据就是一对key-valuedish_1表示属于分类1的菜品列表 2.数据库中的菜品有变更时及时清理缓存数据 1.1缓存菜品数据直接使用redis即可; RestController(userDishController) RequestMapping(/user/dish) Slf4j Api(tags C端-菜品浏览接口) public class DishController {Autowiredprivate DishService dishService;Autowiredprivate RedisTemplate redisTemplate;/*** 根据分类id查询菜品** param categoryId* return*/GetMapping(/list)ApiOperation(根据分类id查询菜品)public ResultListDishVO list(Long categoryId) {//构造redis中的keyString keydish_categoryId;//查询redis中是否存在菜品ListDishVO dishVOList (ListDishVO) redisTemplate.opsForValue().get(key);//如果存在直接返回无需访问数据库if (dishVOList!nulldishVOList.size()0){return Result.success(dishVOList);}Dish dish new Dish();dish.setCategoryId(categoryId);dish.setStatus(StatusConstant.ENABLE);//查询起售中的菜品//如果不存在查询数据库将查询到数据放入redis中dishVOList dishService.listWithFlavor(dish);redisTemplate.opsForValue().set(key,dishVOList);return Result.success(dishVOList);}}1.2清理缓存菜品数据 新增菜品修改菜品批量删除菜品起售停售菜品都需要清理缓存数据; 二.缓存购物车 2.1 spring-cache 在启动类上开启缓存注解功能 SpringBootApplication EnableTransactionManagement //开启注解方式的事务管理 Slf4j EnableCaching //开启缓存注解功能 public class SkyApplication {public static void main(String[] args) {SpringApplication.run(SkyApplication.class, args);log.info(server started);} CachePut注解   将方法的返回值放到缓缓存中Spring Cache有自己的命名规则 比如CachePut(cacheNames“userCache” , key“abc”),则缓存中的Key就是userCache::abc   另外如果需要动态的进行拼接Key值可以使用Sring el表达式语言从参数或返回值中获取内容; //1.从参数中动态获取key后变的参数要与函数的形参一致; PostMapping CachePut(cacheNamesuserCache , key#user.id) public User save(RequestBody User user){userSerivce.insert(user);return user; }//2.从返回值中动态获取key后边是固定的result PostMapping CachePut(cacheNamesuserCache , key#result.id) public User save(RequestBody User user){userSerivce.insert(user);return user; }//3.从多个参数中动态获取key后边是#p0(表示第一个参数);#p1(表示第2个参数) PostMapping CachePut(cacheNamesuserCache , key#p0.id) public User save(RequestBody User user,String dishName){userSerivce.insert(user);return user; }Cacheable注解 用法大致宇CachePut相同效果不同会先到redis中查询有无结果如果有则不调用下边的方法如果没有才调用并随后将被调用的方法的返回值加入redis中; PostMapping Cacheable(cacheNamesuserCache , key#user.id) public User save(RequestBody User user){userSerivce.insert(user);return user; }CacheEvict注解 清理缓存数据 //该代码一次只清理一条数据,删除指定key的键值对; PostMapping CacheEvict(cacheNamesuserCache , key#user.id) public User save(RequestBody User user){userSerivce.insert(user);return user; }//该代码一次能够清理所有的数据; PostMapping CacheEvict(cacheNamesuserCache , allEntriestrue) public User save(RequestBody User user){userSerivce.insert(user);return user; }2.2 在项目中使用spring-cache 1.导入maven坐标 !--redis对应的坐标-- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency!--Spring Cache对应的坐标--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-cache/artifactId/dependency2.在启动类上加上EnableCaching SpringBootApplication EnableTransactionManagement //开启注解方式的事务管理 Slf4j EnableCaching //开启缓存注解功能 public class SkyApplication {public static void main(String[] args) {SpringApplication.run(SkyApplication.class, args);log.info(server started);} }3.在用户端SetmealController的上list方法上加上Cacheable注解 //当用户获取套餐列表时会将套餐内容设置到redis中GetMapping(/list)ApiOperation(根据分类id查询套餐)Cacheable(cacheNames setmealCache,key #categoryId) //keypublic ResultListSetmeal list(Long categoryId) {Setmeal setmeal new Setmeal();setmeal.setCategoryId(categoryId);setmeal.setStatus(StatusConstant.ENABLE);ListSetmeal list setmealService.list(setmeal);return Result.success(list);}4.在管理端SetmealController的save,delete,update,startOrStop等方法上加上CacheEvict注解 //新增时删除指定套餐;PostMappingApiOperation(新增套餐)CacheEvict(cacheNames setmealCache,key #setmealDTO.categoryId)public Result save(RequestBody SetmealDTO setmealDTO) {setmealService.saveWithDish(setmealDTO);return Result.success();}//批量删除套餐时,删除缓存中所有的套餐数据; DeleteMapping ApiOperation(批量删除套餐) CacheEvict(cacheNames setmealCache,allEntries true) public Result delete(RequestParam ListLong ids){setmealService.deleteBatch(ids);return Result.success(); }
http://www.pierceye.com/news/330414/

相关文章:

  • 个人网站做推广系统开发师
  • 智能建站的优势和不足app注册推广拉人
  • 做网站用软件网站制作怎么创业
  • 解放碑电子商务网站建设网站建设英文如何表达
  • 长春好的做网站公司有哪些网站建设标准
  • 公司网站首页大图怎么做台州网站制作定制
  • 网站建设公司软件开发浅谈网站建设开发
  • 松江网站开发培训课程海外域名注册商
  • 智慧景区网站服务建设线下课程seo
  • 做3个网站需要多大的服务器做地铁建设的公司网站
  • 深圳app网站建设哪家好广西桂林
  • 网站开发及上线过程网站建设备案策划书
  • 杭州九鸿科技网站开发网站模板 素材
  • 网站建设网站软件有哪些wordpress如何输入拼音
  • 昆山网站建设哪家便宜简单的模板网站
  • 做图标得英文网站wordpress写代码插件
  • 网站网页设计案例wordprees可以做棋类网站吗
  • 天河区门户网站官网小学生一分钟新闻播报
  • 漯河网站建设lhwzzz网络服务器机柜
  • 有口碑的武进网站建设国内做房车游网站
  • 山东省城乡住房和城乡建设厅网站济南网站建设wuliankj
  • 网站首页跳出弹窗wordpress远程后台设置
  • 免费信息网站建设平台影响网站排名的因素 权重
  • 做房产网站接不到电话湖北网站建设平台
  • 厦门国外网站建设公司排名上海自贸区注册公司优惠政策
  • 网站建设的公司实习做什么成都住建局官网住建智慧建管
  • 建一个免费看电影的网站犯法不国家企业信用信息没有网站怎么做
  • 长春网站vantage wordpress
  • 帝国cms如何做网站地图自己做的网站还要买域名么
  • 网站建设与维护税率网络营销案例及视频