简介
Spring @Cacheable 注解
@Cacheable 是什么
@Cacheable 是 Spring Framework 提供的一个注解,用于方法级别的缓存管理。当一个被标注为 @Cacheable 的方法被调用时,它会先检查缓存中是否有对应的结果。如果有,则直接返回缓存结果,而不会执行方法逻辑。如果没有,则执行方法逻辑并将结果存入缓存,以便下次调用时直接使用缓存值。
作用
- 提升性能:避免重复调用耗时的计算或 I/O 操作(如数据库查询或远程调用)。
- 减少资源消耗:减少系统对外部依赖(如数据库、API)的访问频率。
- 简单易用:通过注解配置,无需显式管理缓存逻辑。
参数解析
@Cacheable(
cacheNames = ..., // 缓存的名字(可理解为缓存的分类)
key = ..., // 缓存的键(默认使用方法参数作为键)
unless = ..., // 条件表达式,返回 true 时不会缓存
condition = ... // 条件表达式,返回 true 时才缓存
)
cacheNames: 指定缓存名称,用于区分不同的缓存空间。key: 自定义缓存键的生成规则,支持 SpEL(Spring Expression Language)。unless: 返回结果满足条件时,不存入缓存。condition: 满足条件时,才会存入缓存。sync: 如果为true,则多个线程同时访问会先锁定,确保只执行一次计算。
Caffeine 本地缓存
Caffeine 是一个高性能、本地缓存库,提供类似于 Guava Cache 的功能,并且性能更优。想了解跟多可以自行百度,这里不做过多介绍哈(感谢支持)
Caffeine 和 Spring Cache 实现本地缓存
1. 添加 Maven 依赖
在 pom.xml 中添加以下依赖:
<dependencies>
<!-- Spring Cache Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<!-- Caffeine Cache -->
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</

最低0.47元/天 解锁文章
244

被折叠的 条评论
为什么被折叠?



