| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 【Java】SpringBoot使用caffeine构建缓存带实例源码 -> 正文阅读 |
|
[Java知识库]【Java】SpringBoot使用caffeine构建缓存带实例源码 |
目录一、什么是caffeineCaffeine是一个基于Java8开发的提供了近乎最佳命中率的高性能的缓存库。 缓存和ConcurrentMap有点相似,但还是有所区别。最根本的区别是ConcurrentMap将会持有所有加入到缓存当中的元素,直到它们被从缓存当中手动移除。但是,Caffeine的缓存 Caffeine提供了灵活的构造器去创建一个拥有下列特性的缓存:
二、SpringBoot整合caffeine1. SpringBoot项目基础运行本次项目基于SpringBoot官方rest接口示例的完成部分进行演示 这里我们使用完成部分 gs-rest-service/complete at main · spring-guides/gs-rest-service (github.com) 为了不和本地项目发生端口冲突,在项目中添加配置文件,修改端口号
先运行项目试试
2. 基于maven安装caffeine目前caffeine的版本是 com.github.ben-manes.caffeine : caffeine : 3.0.4 - Maven Central Repository Search 添加依赖
安装依赖 IDEA会帮我们完成依赖的安装。。。 3. 缓存注解说明我们通过一个路由设置缓存,并通过一个路由读取缓存 SpringBoot调用Caffeine,使用的是通用的缓存注解。 Cache Providers的加载顺序如下 我们使用的注解为
业务上的流程为
4. 实际代码1)修改配置文件application.yml增加缓存配置
2) 类的注解 @EnableCaching 启用缓存
3) 方法的获取缓存 @Cacheable我这里简化了内部逻辑,每次返回一个随机的数字,如果有缓存就会一直返回同一个数字。
4) 主动清理缓存 @CacheEvict这里也使用get的原因是为了方便调试。
5. 运行效果运行项目
本地访问 http://localhost:8100/cache?key=diandianxiyu_geek 多次访问,发现得到的是相同的结果,表示缓存成功读取 访问清理缓存地址 http://localhost:8100/cache/clear?key=diandianxiyu_geek 因为没有设置返回值,所以没有输出 再次访问http://localhost:8100/cache?key=diandianxiyu_geek 发现结果发生变化,表示缓存已被清理,并重建。 6. 本文项目源码本文项目源码已经托管在codechina上,可以直接克隆并运行。 小雨同学的服务器果然有问题 / springboot-caffeine · CODE CHINA (csdn.net) 三、参考资料 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 0:19:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |