文章目录

  • 1.导包
  • 2.配置config
  • 3.测试

Caffeine 是基于 JAVA 8 的高性能缓存库。并且在 spring5 (springboot 2.x) 后,spring 官方放弃了 Guava,而使用了性能更优秀的 Caffeine 作为默认缓存组件。

1.导包

<!-- Caffeine Cache支持 -->
<dependency><groupId>com.github.ben-manes.caffeine</groupId><artifactId>caffeine</artifactId>
</dependency>

2.配置config

@Configuration
@EnableCaching
@Slf4j
public class CaffeineCacheConfig {/*** CacheManager实现类* @return*/@Bean("cacheManager")public CacheManager cacheManager() {SimpleCacheManager cacheManager = new SimpleCacheManager();// 缓存集合ArrayList<CaffeineCache> caches = new ArrayList<>();// 对缓存key属性做设置caches.add(new CaffeineCache("users-cache",Caffeine.newBuilder()// 指定Key下的最大缓存数据量.maximumSize(1000)// 最后一次访问之后 120秒 过期.expireAfterAccess(120, TimeUnit.SECONDS).build()));cacheManager.setCaches(caches);return cacheManager;}
}

3.测试

添加缓存操作:@Cacheable(cacheNames = “users-cache”)

@Cacheable(cacheNames = "users-cache")
@ApiOperation("获取排班活动(都不传默认查询全部)")
@GetMapping("/getSchedulingActivityList")
public Result<PageResult> getSchedulingActivityList(@RequestParam(required = false) Integer apartmentId,@RequestParam(required = false) Integer status,@RequestParam(defaultValue = "1") int currentPage,@RequestParam(defaultValue = "5") int pageSize) {System.out.println("缓存查询");LambdaQueryWrapper<SchedulingActivity> lqw = new LambdaQueryWrapper<>();if(apartmentId!=null){lqw.eq(SchedulingActivity::getApartmentId,apartmentId);}if(status!=null){lqw.eq(SchedulingActivity::getStatus,status);}Page<SchedulingActivity> page = schedulingActivityService.page(new Page<>(currentPage, pageSize),lqw);return Result.success(BeanCopyUtils.copyBean(page, PageResult.class));
}

更新缓存操作@CacheEvict(cacheNames = “users-cache”, allEntries = true)

@CacheEvict(cacheNames = "users-cache", allEntries = true)
@ApiOperation("管理员发布排班活动")
@PostMapping("/releaseSchedulingActivity")
public Result releaseSchedulingActivity(@RequestBody @Valid SchedulingActivityDto dto) {LoginUser user = userService.getLoginUser();//判断用户用户权限if (RoleConstants.STUDENT_ROLE.equals(user.getRoleId())) {throw new BusinessException(ErrorCode.NO_AUTH);}List<SchedulingActivity> list = schedulingActivityService.handleActivityDTO(dto, user);schedulingActivityService.saveBatch(list);return Result.success(list);
}

springboot集成caffeine实现本地缓存相关推荐

  1. SpringBoot 集成 Caffeine(咖啡因)最优秀的本地缓存

    SpringBoot 集成 Caffeine(咖啡因)最优秀的本地缓存 本地缓存 为什么用Caffeine做本地缓存 SpringBoot2.0+如何集成 Caffeine 引入依赖 开启缓存 容器配 ...

  2. Springboot 集成 mybatis 开启二级缓存(redis)

    首先来了解下mybatis 缓存,mybatis缓存分为一级缓存和二级缓存.一级缓存是默认开启的,无需其他配置操作,二级缓存则需要手动设置开启. 一级缓存原理: Mybatis的一级缓存是指同一个Sq ...

  3. SpringBoot集成Redission实现分布式缓存

    github地址:https://github.com/redisson/redisson 一.源码分析 trylock tryAcquire 针对过期时间做不同的转发处理 tryLockInnerA ...

  4. SpringBoot 之 集成Caffeine本地缓存

    Caffeine的 github地址 使用版本说明: For Java 11 or above, use 3.0.x otherwise use 2.9.x SpringBoot 有两种使用 Caff ...

  5. SpringBoot 使用 Caffeine 本地缓存

    文章目录 一.本地缓存介绍 二.缓存组件 Caffeine 介绍 2.1. Caffeine 性能 2.2. Caffeine 配置说明 2.3. 软引用与弱引用 三.SpringBoot 集成 Ca ...

  6. (很全面)SpringBoot 使用 Caffeine 本地缓存

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:超级小豆丁 http://www.mydlq.club/article/56/ 目录 ...

  7. [Springboot实战] 集成 Caffeine

    Caffeine是一个基于Java8的高性能,高命中率,低内存占用的缓存框架(near optimal 的本地缓存)具有较高的命中率和出色的并发能力,号称趋于完美.简单来说它是Guava Cache的 ...

  8. SpringBoot 集成 layering-cache 实现两级缓存调研与实践

    前言 对于系统查多改少的数据,可以通过缓存来提升系统的访问性能.一般情况下我们会采用 Redis ,但是如果仅仅依赖 Redis 很容易出现缓存雪崩的情况.为了防止缓存雪崩可以通过 Redis 高可用 ...

  9. 黑帮2洛杉矶之王java_Spring Boot 2.x 把 Guava 干掉了,选择本地缓存之王 Caffeine!...

    环境配置: JDK 版本:1.8 Caffeine 版本:2.8.0 SpringBoot 版本:2.2.2.RELEASE 一.本地缓存介绍 缓存在日常开发中启动至关重要的作用,由于是存储在内存中, ...

  10. 干掉 GuavaCache:Caffeine 才是本地缓存的王

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 话说,中间件的选择上,Spring(SpringBoot ...

最新文章

  1. 剑指offer_第8题_跳台阶
  2. linux下配置环境变量【原创】
  3. JAVA基础知识(4)
  4. Delphi 的绘图功能[10] - TFONT 类
  5. 8.OD--函数参考
  6. 为什么单模光端机价格比多模光端机价格高
  7. 时间紧任务重---extjs的学习就这么开始吧
  8. 编辑电线标注及图纸上从主电源线上引出多条支路时如何进行线号的编写?
  9. vsftp匿名访问目录_怎么更改vsftp匿名用户的默认登录目录/var/ftp?
  10. C#枚举中使用Flags特性
  11. HTML+CSS零基础学习笔记(二)
  12. HSPICE 电平触发D触发器仿真
  13. Statistical Language Model笔记+几个简单平滑算法
  14. 为什么使用服务器端渲染 (SSR)?
  15. 逻辑越权——垂直、水平越权
  16. TP TN FP FN
  17. 苏黎世联邦理工学院计算机博士去向,2019年5月31日学术报告(李文 研究员,瑞士苏黎世联邦理工学院)...
  18. Cuckoo沙箱调研
  19. ansible架构、安装、简单的使用
  20. Java读取文件最后n行

热门文章

  1. Java户籍管理系统的设计与实现
  2. 修改系统默认 alert 弹框样式
  3. win10打印服务器纸规格没有显示,win10系统打印机添加了自定义的纸张却找不到的操作办法...
  4. mysql和mongodb查询性能测试_MongoDB 模糊查询,及性能测试
  5. 香港马市、田忌赛马?这款游戏 IP 碉堡了
  6. Oracle中的空值问题
  7. 【Python项目】贪吃蛇小游戏
  8. MSDN visual studio 2010简体中文旗舰版,专业版下载(内置正版密钥)
  9. PostgreSQL - 一文看懂explain
  10. JVM与Java体系结构