-
Cache 接口下 Spring 提供了各种 xxxCache 的实现,比如:RedisCache、EhCache、ConcurrentMapCache
-
CacheManager 定义了创建、配置、获取、管理和控制多个唯一命名的 Cache。这些 Cache 存在于 CacheManager 的上下文中。
小结:
每次调用需要缓存功能的方法时,Spring 会检查指定参数的指定目标方法是否已经被调用过,如果有就直接从缓存中获取方法调用后的结果,如果没有就调用方法并缓存结果后返回给用户。下次调用直接从缓存中获取。
二、@Cacheable 注解使用详细介绍
1、缓存使用步骤
@Cacheable
这个注解,用它就是为了使用缓存的。所以我们可以先说一下缓存的使用步骤:
1、开启基于注解的缓存,使用
@EnableCaching
标识在 SpringBoot 的主启动类上。
2、标注缓存注解即可
① 第一步:开启基于注解的缓存,使用 @EnableCaching
标注在 springboot 主启动类上
② 第二步:标注缓存注解
注:这里使用 @Cacheable
注解就可以将运行结果缓存,以后查询相同的数据,直接从缓存中取,不需要调用方法。
2、常用属性说明
下面介绍一下 @Cacheable
这个注解常用的几个属性:
cacheNames/value
:用来指定缓存组件的名字
key
:缓存数据时使用的 key,可以用它来指定。默认是使用方法参数的值。(这个 key 你可以使用 spEL 表达式来编写)
keyGenerator
:key 的生成器。 key 和 keyGenerator 二选一使用
cacheManager
:可以用来指定缓存管理器。从哪个缓存管理器里面获取缓存。
condition
:可以用来指定符合条件的情况下才缓存
unless
:否定缓存。当 unless 指定的条件为 true ,方法的返回值就不会被缓存。当然你也可以获取到结果进行判断。(通过#result
获取方法结果)
sync
:是否使用异步模式。
① cacheNames
用来指定缓存组件的名字,将方法的返回结果放在哪个缓存中,可以是数组的方式,支持指定多个缓存。
② key
缓存数据时使用的 key。默认使用的是方法参数的值。可以使用 spEL 表达式去编写。
③ keyGenerator
key 的生成器,可以自己指定 key 的生成器,通过这个生成器来生成 key。
这样放入缓存中的 key 的生成规则就按照你自定义的 keyGenerator 来生成。不过需要注意的是:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://i-blog.csdnimg.cn/blog_migrate/8ec7b032e1a8b87f50b0c51cc6205a2e.jpeg)
《MySql面试专题》
《MySql性能优化的21个最佳实践》
《MySQL高级知识笔记》
文中展示的资料包括:**《MySql思维导图》《MySql核心笔记》《MySql调优笔记》《MySql面试专题》《MySql性能优化的21个最佳实践》《MySq高级知识笔记》**如下图
关注我,点赞本文给更多有需要的人
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
q高级知识笔记》**如下图
[外链图片转存中…(img-DjHJj6fe-1713308066527)]
关注我,点赞本文给更多有需要的人
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!