简单使用

1. maven 依赖

2. 开启缓存配置

在启动类上开启缓存 @EnableCaching

3. 使用缓存

@Cacheable 是将方法的返回值保存到缓存中
@CachePut 是根据key更新缓存中的数据
@CacheEvict 是根据key删除缓存数据

@Cacheable(cacheNames = {"emp"}, key = "#id")
public Employee getEmp(Integer id) {Employee employeeId = employeeMapper.getEmployeeId(id);return employeeId;
}
@CachePut(cacheNames = {"emp"}, key = "#result.id")
public Employee updateEmp(Employee employee) {employeeMapper.updateEmp(employee);return employee;
}
@CacheEvict(cacheNames = {"emp"}, key = "#id")
public boolean delete(Integer id) {employeeMapper.delete(id);return true;
}

自动配置原理

1. 默认的缓存配置器

 * 直接搜索类 ```CacheAutoConfiguration``` 找到 ```CacheConfigurationImportSelector.selectImports```方法,该方法会返回所有的自动配置类:
```org.springframework.boot.autoconfigure.cache.GenericCacheConfiguration```
`org.springframework.boot.autoconfigure.cache.JCacheCacheConfiguration`
`org.springframework.boot.autoconfigure.cache.EhCacheCacheConfiguration`
`org.springframework.boot.autoconfigure.cache.HazelcastCacheConfiguration`
`org.springframework.boot.autoconfigure.cache.InfinispanCacheConfiguration`
`org.springframework.boot.autoconfigure.cache.CouchbaseCacheConfiguration`
`org.springframework.boot.autoconfigure.cache.RedisCacheConfiguration`
`org.springframework.boot.autoconfigure.cache.CaffeineCacheConfiguration`
`org.springframework.boot.autoconfigure.cache.SimpleCacheConfiguration`
`org.springframework.boot.autoconfigure.cache.NoOpCacheConfiguration`
* 在 `application.yml` 中 设置 `debug: true`,在控制台可以看到默认使用的自动配置类
```
SimpleCacheConfiguration matched:- Cache org.springframework.boot.autoconfigure.cache.SimpleCacheConfiguration automatic cache type (CacheCondition)- @ConditionalOnMissingBean (types: org.springframework.cache.CacheManager; SearchStrategy: all) did not find any beans (OnBeanCondition)
```

2. @Cacheable 不能的key不能使用result,因为@Cacheable在方法执行前调用的。

3. @CachePut 可以使用result中的数据,因为@CachePut在方法执行后调用。

  1. @CacheEvict 默认在方法执行之后执行(如果方法执行出错,将不会执行),可以通过 beforeInvocation=true 设置为在方法之前执行。

转载于:https://www.cnblogs.com/Godfunc/p/9316563.html

Spring-Boot——Cache相关推荐

  1. java+caching+system_浅谈Spring boot cache使用和原理

    缓存要解决的问题:一个程序的瓶颈在于数据库,我们也知道内存的速度是大大快于硬盘的速度的.当我们需要重复地获取相同的数据的时候,我们一次又一次的请求数据库或者远程服务,导致大量的时间耗费在数据库查询或者 ...

  2. Spring Boot Cache使用与整合

    参考: 史上最全的Spring Boot Cache使用与整合 Spring Cache扩展:注解失效时间+主动刷新缓存 项目地址 使用本地Caffeine缓存 引入依赖包 <dependenc ...

  3. Spring Boot Cache之缓存

    缓存详解 缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找.由于缓存的运行速度比内存快得多,故缓存的作用就 ...

  4. Spring Boot cache backed guava/caffeine

    为什么80%的码农都做不了架构师?>>>    Spring Boot提供了spring-boot-starter-cache,支持多个缓存实现,如EHCache,Redis,GUA ...

  5. Spring Boot : Cache相关简介

    1.美图 2.概述 首先了解一下:java : JSR107缓存规范 Spring缓存抽象 Spring从3.1开始定义了org.springframework.cache.Cache和org.spr ...

  6. springboot 分层_限量!阿里Spring Boot成长笔记终开源!理论实战满满

    前言 随着微服务理念的盛行,微框架的概念也随之诞生,而其中最耀眼的,当属SpringBoot.虽然之前Dropwizard是公认的最早的微框架,但SpringBoot"青出于蓝而胜于蓝&qu ...

  7. (10)Spring Boot修改端口号【从零开始学Spring Boot】

    Spring boot 默认端口是8080,如果想要进行更改的话,只需要修改applicatoin.properties文件,在配置文件中加入: server.port=9090 常用配置: #### ...

  8. 70.打印所有Spring boot载入的bean【从零开始学Spring Boot】

    [从零开始学习Spirng Boot-常见异常汇总] 问题的提出: 我们在开发过程当中,我们可能会碰到这样的问题:No qualifying bean  就是我们定义的bean无法进行注入,那到底是什 ...

  9. Spring Boot 2.X整合Spring-cache,让你的网站速度飞起来

    计算机领域有人说过一句名言:"计算机科学领域的任何问题都可以通过增加一个中间层来解决",今天我们就用Spring-cache给网站添加一层缓存,让你的网站速度飞起来. 本文目录 一 ...

  10. (30)导入时如何定制spring-boot依赖项的版本【转载】【从零开始学Spring Boot】...

    此文章转载地址:http://www.tuicool.com/articles/RJJvMj3 请注重作者的版权. spring-boot通过maven的依赖管理为我们写好了很多依赖项及其版本,我们可 ...

最新文章

  1. linux-swappiness参数的作用及设置
  2. OpenCV 简单的人脸识别
  3. 教你如何创建类似QQ的android弹出菜单
  4. 将SQL中数据输出到Excel中
  5. sjms-1 面向对象
  6. 移动端设备标识码/设备唯一标识码/设备唯一性
  7. DP || HYSBZ 1207 打鼹鼠
  8. 【cocos2d-x从c++到js】10:JS与C++的交互2——JS与C++的“函数重载”问题
  9. pygame系列文章
  10. CentOS7安装dnf报错:No package dnf available
  11. 什么是深浅拷贝?如何实现深浅拷贝
  12. 『单片机原理』程序存储器的结构
  13. openpyxl 获取worksheet颜色
  14. Android中对静态壁纸和动态壁纸原理深入理解
  15. 百度小程序百度信息流与自然搜索管理
  16. 安卓可能被淘汰?谷歌的新系统,和鸿蒙太像了
  17. 陆平老师论文Closed-Loop Endoatmospheric Ascent Guidance读后总结
  18. 几倍根号用学生计算机,几倍根号几怎么算不要网上抄的 祥细的 例如2√2 3√3 4√4 怎么算...
  19. 纳米饮水思源,原子结构探秘
  20. MLCS algorithm

热门文章

  1. PyTorch系列 | 如何加快你的模型训练速度呢?
  2. NetCore 依赖注入之服务之间的依赖关系
  3. SQLServer之事务简介
  4. python中列表字典和字符串的相互转化
  5. [Tomcat报错]SEVERE: Error listenerStart
  6. Ajax——php基础知识(二)
  7. TCP基础知识 复习
  8. Java基础知识强化之集合框架笔记27:ArrayList集合练习之去除ArrayList集合中的重复字符串元素...
  9. 如何给APK文件签名
  10. 中使用swiper不能自动切换_液晶拼接墙显示系统中矩阵切换器使用的注意事项