diff --git a/sky-server/pom.xml b/sky-server/pom.xml index 3a86d87..565b5da 100644 --- a/sky-server/pom.xml +++ b/sky-server/pom.xml @@ -86,12 +86,13 @@ knife4j-spring-boot-starter - + org.springframework.boot spring-boot-starter-data-redis + org.springframework.boot spring-boot-starter-cache diff --git a/sky-server/src/main/java/com/sky/SkyApplication.java b/sky-server/src/main/java/com/sky/SkyApplication.java index b13f77c..5c75b01 100644 --- a/sky-server/src/main/java/com/sky/SkyApplication.java +++ b/sky-server/src/main/java/com/sky/SkyApplication.java @@ -3,11 +3,13 @@ package com.sky; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; import org.springframework.transaction.annotation.EnableTransactionManagement; @SpringBootApplication @EnableTransactionManagement //开启注解方式的事务管理 @Slf4j +@EnableCaching //开启缓存注解功能 public class SkyApplication { public static void main(String[] args) { SpringApplication.run(SkyApplication.class, args); diff --git a/sky-server/src/main/java/com/sky/controller/admin/SetmealController.java b/sky-server/src/main/java/com/sky/controller/admin/SetmealController.java index eff3f33..83fc1d2 100644 --- a/sky-server/src/main/java/com/sky/controller/admin/SetmealController.java +++ b/sky-server/src/main/java/com/sky/controller/admin/SetmealController.java @@ -10,6 +10,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -33,6 +34,8 @@ public class SetmealController { */ @PostMapping @ApiOperation("新增套餐") + //在客户端新增套餐时,要把对应分类的套餐缓存清理,在下一次查询时,获取最新的数据进行缓存 + @CacheEvict(cacheNames = "setmealCache",key = "#setmealDTO.categoryId") public Result save(@RequestBody SetmealDTO setmealDTO) { setmealService.saveWithDish(setmealDTO); return Result.success(); @@ -57,6 +60,8 @@ public class SetmealController { */ @DeleteMapping @ApiOperation("批量删除套餐") + //客户端批量删除套餐数据时,可能删除多个分类下的套餐,为了避免多余的查询操作,直接将套餐的所有缓存直接清理 + @CacheEvict(cacheNames = "setmealCache",allEntries = true) public Result delete(@RequestParam List ids){ setmealService.deleteBatch(ids); return Result.success(); @@ -83,6 +88,8 @@ public class SetmealController { */ @PutMapping @ApiOperation("修改套餐") + //客户端修改套餐数据时,可能修改分类的类型,为了避免多余的查询操作,直接将套餐的所有缓存直接清理 + @CacheEvict(cacheNames = "setmealCache",allEntries = true) public Result update(@RequestBody SetmealDTO setmealDTO) { setmealService.update(setmealDTO); return Result.success(); @@ -96,6 +103,8 @@ public class SetmealController { */ @PostMapping("/status/{status}") @ApiOperation("套餐起售停售") + //客户端起售停售套餐时,没有传递套餐的分类id,为了避免多余的查询操作,直接将套餐的所有缓存直接清理 + @CacheEvict(cacheNames = "setmealCache",allEntries = true) public Result startOrStop(@PathVariable Integer status, Long id) { setmealService.startOrStop(status, id); return Result.success(); diff --git a/sky-server/src/main/java/com/sky/controller/user/SetmealController.java b/sky-server/src/main/java/com/sky/controller/user/SetmealController.java index 5557e7c..9f60302 100644 --- a/sky-server/src/main/java/com/sky/controller/user/SetmealController.java +++ b/sky-server/src/main/java/com/sky/controller/user/SetmealController.java @@ -8,6 +8,7 @@ import com.sky.vo.DishItemVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -29,6 +30,7 @@ public class SetmealController { */ @GetMapping("/list") @ApiOperation("根据分类id查询套餐") + @Cacheable(cacheNames = "setmealCache",key = "#categoryId") //redis的key setmealCache::#categoryId public Result> list(Long categoryId) { Setmeal setmeal = new Setmeal(); setmeal.setCategoryId(categoryId);