添加Maven依赖

 //缓存依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency>

启动类开启缓存

@SpringBootApplication
@EnableCaching//开启缓存
public class CacheApplication {public static void main(String[] args) {SpringApplication.run(CacheApplication.class, args);}

1.启动类开启缓存功能@EnableCaching

2.@Cacheable 作用在方法上service

将方法的返回结果增加到缓存中

//cacheNames={"list","demo"} 缓存两个库名
@cacheable(cacheNames="emps",key="#root.methodName + '[' +#id+']'")
Key 是 getEmployee[2] 用spEL表达式语法//cacheName(和value一样) 为redis中的名字,  key: #通配符  p是param参数  1是第二个参数,(下标索引从0开始)
@Cacheable(cacheNames="listTreeDataByRoleId",key="#p1")
public List<TreeData>getTreedataByRoleid(String onePname,String roleId){}
//cacheName(和value一样) 为redis中的名字,  key: #通配符  p是param参数  1是第二个参数,(下标索引从0开始)多个参数可以直接拼接(Redis缓存按参数顺序)
@Cacheable(cacheNames="listTreeDataByRoleId1",key="#p1+#p0") //key="#p1+'_'+#p0"
public List<TreeData>getTreedataByRoleid(String onePname,String roleId){}//查库加入缓存,返回结果都会加入缓存
@Cacheput(value="listTreeDataByRoleId",key="#p1")//删除缓存中的key值
@CacheEvict(value="listTreeDataByRoleId",key="#p0")
public JsonData addRoleDatas(String roleId,String datas){}
//清除掉指定key的缓存
@CacheEvict(value="listTreeDataByRoleId1",key="#user.userId + 'findById'")
public void modifyUserRole(SystemUser user) {  System.out.println("hello andCache delete"+user.getUserId());
}  //清除掉全部缓存
@CacheEvict(value="listTreeDataByRoleId1",allEntries=true)
public final void setReservedUsers(String[] reservedUsers) {  System.out.println("hello listTreeDataByRoleId1 deleteall");
}  

注释:

cacheNames/value :用来指定缓存组件的名字
key :缓存数据时使用的 key,可以用它来指定。默认是使用方法参数的值。(这个 key 你可以使用 spEL 表达式来编写)
keyGenerator :key 的生成器。 key 和 keyGenerator 二选一使用
cacheManager :可以用来指定缓存管理器。从哪个缓存管理器里面获取缓存。
condition :可以用来指定符合条件的情况下才缓存
unless :否定缓存。当 unless 指定的条件为 true ,方法的返回值就不会被缓存。当然你也可以获取到结果进行判断。(通过 #result 获取方法结果)
sync :是否使用异步模式。

缓存注解:

@Cache:缓存接口,定义缓存操作
@CacheManager:缓存管理器,管理各种缓存组件
@Cacheable:主要针对方法配置,能够根据方法的请求参数对其结果进行缓存
@CacheEvict:清空缓存
@CachePut:保证方法被调用,又希望结果被缓存,更新缓存
@EnableCaching:开启基于注解的缓存
keyGennerator:缓存数据时key生成策略
serialize:缓存数据时value序列化策略

Spring Boot 缓存使用相关推荐

  1. spring boot缓存_Spring Boot和缓存抽象

    spring boot缓存 缓存是大多数应用程序的主要组成部分,只要我们设法避免磁盘访问,缓存就会保持强劲. Spring对各种配置的缓存提供了强大的支持 . 您可以根据需要简单地开始,然后进行更多可 ...

  2. Spring boot 缓存学习笔记

    Spring boot 缓存 1. spring cache spring cache 是spring 3.1 引入的新技术, 核心思想:调用一个缓存方法时会把该方法参数和返回结果,作为一个键值存入缓 ...

  3. Spring Boot缓存管理

    Spring Boot缓存管理 Spring Boot默认缓存管理 基础环境搭建 Spring Boot默认缓存体验 Spring Boot缓存注解介绍 @EnableCaching注解 @Cache ...

  4. Spring Boot 缓存教程示例

    在本Spring Boot 教程中,学习如何从 Spring 框架缓存支持中轻松管理应用程序缓存.Spring 在缓存方面有一些很好的特性,Spring 缓存 API 的抽象使用起来非常简单. 1.缓 ...

  5. java spring boot缓存_Springboot对缓存的支持

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 缓存是依赖于org.springframework.cache.Cache和 org.springframework.cache.CacheManager ...

  6. Spring Boot 缓存应用实践

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源:cnblogs.com/jeffwongishan ...

  7. spring boot 缓存_SpringBoot 应用 Redis 声明式缓存

    什么是声明式缓存 ? Spring 框架提供一种抽象的缓存机制,且 Spring 只提供接口,不提供缓存的具体实现.所以在程序中使用时,需要有具体缓存的实现.目前支持的常见的缓存比如 JDK Conc ...

  8. spring boot 缓存_Spring Boot 集成 Redis 实现数据缓存

    Spring Boot 集成 Redis 实现数据缓存,只要添加一些注解方法,就可以动态的去操作缓存了,减少代码的操作. 在这个例子中我使用的是 Redis,其实缓存类型还有很多,例如 Ecache. ...

  9. Spring Boot缓存实战 Redis

    Spring boot默认使用的是SimpleCacheConfiguration,即使用ConcurrentMapCacheManager来实现缓存.但是要切换到其他缓存实现也很简单.下面是使用re ...

  10. Spring Boot缓存实战 EhCache

    Spring boot默认使用的是SimpleCacheConfiguration,即使用ConcurrentMapCacheManager来实现缓存.但是要切换到其他缓存实现也很简单 pom文件 在 ...

最新文章

  1. js回调流程控制, 更高级, 更优雅
  2. mysql 查询优化实验报告_Mysql查询优化小结
  3. CCNP-16 OSPF试验12(BSCI)
  4. mysql docker自动化_docker自动化部署
  5. VTK修炼之道56:图形基本操作进阶_表面重建技术(三维点云曲面重建)
  6. python制作软件封面_用python给MP3加封面图片,修改作者,专辑等信息
  7. 从小白到入门算法,我的经验分享给你~
  8. WCF Ria Service“操作失败,指定的命名链接在配置中找不到”错误解决方法
  9. oracle PS/SQL DEVELOPER
  10. centos7轻松搭建文件服务器
  11. 谷歌翻译接口_QTranslate:电脑全局翻译神器
  12. WiFi共享二维码自动生成
  13. 渗透测试神器Burp Suite v1.6.12破解版
  14. java 实现 excel normsdist_Excel函数NormSDist和NormSInv的VB实现
  15. MT【306】圆与椭圆公切线段
  16. 因果性与因果模型 | 中国人民大学哲学与认知科学明德讲坛
  17. html上传动态图片不显示图片,解决 viewer.js 动态更新图片导致无法预览的问题
  18. 显示器竖屏显示会字体发虚的解决方法
  19. mysql的LRU队列详解
  20. html 表格,列表,表单,select和下拉选框,textarea多行文本域,label关联控件,表单,浮动框架,结构化标签

热门文章

  1. 苏宁消费金融实现结构性转型调整 科技平台发力 深耕消费场景
  2. Scapy--1--
  3. CodeVS 1063 合并果子
  4. Fmoc-L-Ser(β-D-Glc(Ac)4)-OH;葡萄糖丝氨酸;118358-38-6
  5. 计算机考证需要英语过四级吗
  6. Michael Barr « Embedded Gurus – Experts on Embedded Software
  7. 免费赠书 | 房价的一元回归分析
  8. GPU版本pytorch安装教程
  9. 推流github相关
  10. python入门学习:多态