feat: Spring Boot 整合 Spring Cache 和 Redis 缓存

This commit is contained in:
haoxr
2023-12-04 21:39:24 +08:00
parent e28b3e9490
commit 86c7466bac
2 changed files with 7 additions and 10 deletions

View File

@@ -70,7 +70,6 @@ public class SysMenuController {
@PostMapping @PostMapping
@PreAuthorize("@ss.hasPerm('sys:menu:add')") @PreAuthorize("@ss.hasPerm('sys:menu:add')")
@PreventDuplicateSubmit @PreventDuplicateSubmit
@CacheEvict(cacheNames = "system", key = "'routes'")
public Result addMenu(@RequestBody MenuForm menuForm) { public Result addMenu(@RequestBody MenuForm menuForm) {
boolean result = menuService.saveMenu(menuForm); boolean result = menuService.saveMenu(menuForm);
return Result.judge(result); return Result.judge(result);
@@ -79,7 +78,6 @@ public class SysMenuController {
@Operation(summary = "修改菜单") @Operation(summary = "修改菜单")
@PutMapping(value = "/{id}") @PutMapping(value = "/{id}")
@PreAuthorize("@ss.hasPerm('sys:menu:edit')") @PreAuthorize("@ss.hasPerm('sys:menu:edit')")
@CacheEvict(cacheNames = "system", key = "'routes'")
public Result updateMenu( public Result updateMenu(
@RequestBody MenuForm menuForm @RequestBody MenuForm menuForm
) { ) {

View File

@@ -21,6 +21,7 @@ import com.youlai.system.model.vo.RouteVO;
import com.youlai.system.service.SysMenuService; import com.youlai.system.service.SysMenuService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -128,10 +129,10 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
} }
/** /**
* 路由列表 * 获取路由列表
*/ */
@Override @Override
@Cacheable(cacheNames = "system", key = "'routes'") @Cacheable(cacheNames = "menu", key = "'routes'")
public List<RouteVO> listRoutes() { public List<RouteVO> listRoutes() {
List<RouteBO> menuList = this.baseMapper.listRoutes(); List<RouteBO> menuList = this.baseMapper.listRoutes();
return buildRoutes(SystemConstants.ROOT_NODE_ID, menuList); return buildRoutes(SystemConstants.ROOT_NODE_ID, menuList);
@@ -193,9 +194,10 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
} }
/** /**
* 保存菜单 * 新增/修改菜单
*/ */
@Override @Override
@CacheEvict(cacheNames = "menu", key = "'routes'",beforeInvocation = false)
public boolean saveMenu(MenuForm menuForm) { public boolean saveMenu(MenuForm menuForm) {
String path = menuForm.getPath(); String path = menuForm.getPath();
MenuTypeEnum menuType = menuForm.getType(); MenuTypeEnum menuType = menuForm.getType();
@@ -280,16 +282,13 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* @return 是否删除成功 * @return 是否删除成功
*/ */
@Override @Override
@CacheEvict(cacheNames = "menu", key = "'routes'")
public boolean deleteMenu(Long id) { public boolean deleteMenu(Long id) {
if (id != null) { return this.remove(new LambdaQueryWrapper<SysMenu>()
this.remove(new LambdaQueryWrapper<SysMenu>()
.eq(SysMenu::getId, id) .eq(SysMenu::getId, id)
.or() .or()
.apply("CONCAT (',',tree_path,',') LIKE CONCAT('%,',{0},',%')", id)); .apply("CONCAT (',',tree_path,',') LIKE CONCAT('%,',{0},',%')", id));
} }
// 无异常即为删除成功
return true;
}
} }