// Same Class
@CacheEvict(value = "menuListByUser", key = "#userId")
public void evictMenuWithPageAndCompInfoCacheByUser(String userId) {
log.info(userId + "의 메뉴 캐시정보가 삭제되었습니다.");
}
private void deleteCacheByRoleId(Integer roleId) {
List<String> userIdList = getUserIdListByRoleId(roleId);
for (String userId : userIdList) {
evictMenuWithPageAndCompInfoCacheByUser(userId);
}
}
// Diffrent Class
// [1] in cache service class (class name : CacheWorkService)
@CacheEvict(value = "menuListByUser", key = "#userId")
public void evictMenuWithPageAndCompInfoCacheByUser(String userId) {
log.info(userId + "의 메뉴 캐시정보가 삭제되었습니다.");
}
// [2] in service class (class name : WorkService)
private void deleteCacheByRoleId(Integer roleId) {
List<String> userIdList = getUserIdListByRoleId(roleId);
for (String userId : userIdList) {
cacheWorkService.evictMenuWithPageAndCompInfoCacheByUser(userId);
}
}