Spring Boot集成Spring Cache只需三步:加依赖(如spring-boot-starter-cache与redis/caffeine等)、开开关(@EnableCaching)、打注解(@Cacheable/@CachePut/@CacheEvict);自动AOP织入,无需手动操作缓存。

Spring Boot 集成 Spring Cache 主要靠三步:加依赖、开开关、打注解。不需要写缓存工具类,也不用手动存取 Redis 或本地 Map,所有逻辑由 AOP 自动织入。
添加必要依赖
项目必须引入两个 starter:
- spring-boot-starter-cache:提供缓存抽象层和注解支持
-
具体缓存实现 starter,比如:
• spring-boot-starter-data-redis(推荐用于分布式场景)
• 或 spring-boot-starter-cache + ehcache3 / caffeine(适合单机高性能)
启用缓存功能
在启动类上加上 @EnableCaching 注解,这是开启整个缓存机制的总开关:
@SpringBootApplication
@EnableCaching
public class MyApp { ... }没有它,所有 @Cacheable 等注解都不会生效。
配置缓存类型和参数
在 application.yml 中指定缓存实现和基础行为:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
spring:
cache:
type: redis # 可选值:redis、caffeine、ehcache、simple(内存Map)
redis:
host: localhost
port: 6379
cache:
redis:
time-to-live: 60000 # 所有 Redis 缓存默认过期时间(毫秒)
cache-null-values: true # 允许缓存 null,防穿透如果用 Caffeine,可配更细粒度策略(如不同 cacheName 不同 TTL),需自定义 CacheManager Bean。
在业务方法上使用缓存注解
最常用三个注解作用明确,别混用:
- @Cacheable("users"):查数据时用。先查缓存,命中就返回;不命中才执行方法,并把结果存进去
- @CachePut("users"):改数据后更新缓存用。一定执行方法,再把返回值写入缓存(不管原来有没有)
- @CacheEvict("users"):删数据或使缓存失效时用。执行方法后,清掉对应 key 或整个 cache
示例:
@Service
public class UserService {
@Cacheable(value = "users", key = "#id")
public User findById(Long id) { ... }
<p>@CachePut(value = "users", key = "#user.id")
public User update(User user) { ... }</p><p>@CacheEvict(value = "users", key = "#id")
public void delete(Long id) { ... }
}key 支持 SpEL 表达式,比如 #id、#user.name、root.methodName,灵活控制缓存维度。

















