@CacheConfig:主要用于配置该类中会用到的一些共用的缓存配置
@Cacheable:主要方法的返回值将被加入缓存。在查询时,会先从缓存中获取,若不存在才再发起对数据库的访问
@CachePut:主要用于数据新增和修改操作
@CacheEvict:配置于函数上,通常用在删除方法上,用来从缓存中移除相应数据?
这些注解通常用于 Spring Framework 中对方法的缓存配置。以下是这些注解的简单使用案例:
@CacheConfig:配置类的缓存公共设置?
@CacheConfig(cacheNames = "myCache")
public class MyService {
// ...
}
?这里配置了类中方法默认使用名为 "myCache" 的缓存。
?@Cacheable:查询方法的返回值将被加入缓存
@Cacheable
public String findById(Long id) {
// 查询数据库的操作
return "result";
}
查询方法 findById
的返回值将被加入缓存,下次调用该方法时,如果传入的 id
已经在缓存中存在,则直接从缓存中获取,而不是执行方法体。
@CachePut:新增和修改操作
@CachePut
public String updateData(Long id, String newData) {
// 更新数据库的操作
return newData;
}
新增或修改方法 updateData
的返回值将被加入缓存。与 @Cacheable
不同的是,@CachePut
注解会每次都执行方法体,并将结果加入缓存。
@CacheEvict:删除操作
@CacheEvict
public void deleteById(Long id) {
// 删除数据库中对应 id 的数据
}
删除方法 deleteById
被调用时,会从缓存中移除对应 id
的缓存项。?
这些注解可以与缓存管理器一起使用,例如结合 EhCache 或 Redis 等实现具体的缓存操作。在使用这些注解时,通常需要在 Spring 配置文件中配置相应的缓存管理器。