@Cacheable 是 Spring 提供的注解,用于将方法的返回值缓存起来,以提高方法的执行效率。其使用方式如下:
- 引入依赖
需要在 pom.xml 文件中引入 Spring Cache 的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
- 配置缓存管理器
在 Spring Boot 中,可以通过在 application.properties 或 application.yml 文件中添加配置来启用默认的缓存管理器。
spring:
cache:
type: redis # 指定使用 Redis 作为缓存类型
- 在需要进行缓存的方法上添加 @Cacheable 注解
例如:
@Service
public class UserServiceImpl implements UserService {
@Override
@Cacheable(value = "userCache", key = "#id")
public User getUserById(Long id) {
// 实现获取用户信息的逻辑
return user;
}
}
其中,value 属性指定了该方法使用的缓存名称(可选),key 属性指定了该方法返回值在缓存中对应的键值(必填)。当调用该方法时,如果有相同 key 的数据存在于缓存中,则直接从缓存中取出数据并返回;否则会先执行方法体内部逻辑获取数据,并将其放入缓存中。
需要注意的是,在使用 @Cacheable 注解时,Spring 默认使用 JDK 的序列化方式将对象序列化成字节数组进行缓存,因此需要在实体类上添加 Serializable 接口或者配置使用其他序列化方式。




