SpringBoot缓存相关注解的使用

@CacheConfig:主要用于配置该类中会用到的一些共用的缓存配置

@Cacheable:主要方法的返回值将被加入缓存。在查询时,会先从缓存中获取,若不存在才再发起对数据库的访问

@CachePut:主要用于数据新增和修改操作

@CacheEvict:配置于函数上,通常用在删除方法上,用来从缓存中移除相应数据

这些注解通常用于 Spring Framework 中对方法的缓存配置。以下是这些注解的简单使用案例:

@CacheConfig:配置类的缓存公共设置

java 复制代码
@CacheConfig(cacheNames = "myCache")
public class MyService {
    // ...
}

这里配置了类中方法默认使用名为 "myCache" 的缓存。

@Cacheable:查询方法的返回值将被加入缓存

java 复制代码
@Cacheable
public String findById(Long id) {
    // 查询数据库的操作
    return "result";
}

查询方法 findById 的返回值将被加入缓存,下次调用该方法时,如果传入的 id 已经在缓存中存在,则直接从缓存中获取,而不是执行方法体。

@CachePut:新增和修改操作

java 复制代码
@CachePut
public String updateData(Long id, String newData) {
    // 更新数据库的操作
    return newData;
}

新增或修改方法 updateData 的返回值将被加入缓存。与 @Cacheable 不同的是,@CachePut 注解会每次都执行方法体,并将结果加入缓存。

@CacheEvict:删除操作

java 复制代码
@CacheEvict
public void deleteById(Long id) {
    // 删除数据库中对应 id 的数据
}

删除方法 deleteById 被调用时,会从缓存中移除对应 id 的缓存项。

这些注解可以与缓存管理器一起使用,例如结合 EhCache 或 Redis 等实现具体的缓存操作。在使用这些注解时,通常需要在 Spring 配置文件中配置相应的缓存管理器。

相关推荐
热河暖男2 小时前
【实战解决方案】Spring Boot+Redisson构建高并发Excel导出服务,彻底解决系统阻塞难题
spring boot·后端·excel
0吉光片羽05 小时前
【SpringBoot】集成kafka之生产者、消费者、幂等性处理和消息积压
spring boot·kafka·linq
Ryan-Joee5 小时前
Spring Boot三层架构设计模式
java·spring boot
呦呦鹿鸣Rzh5 小时前
缓存的相关内容
缓存
dddaidai1235 小时前
Redis解析
数据库·redis·缓存
工一木子6 小时前
【Java项目脚手架系列】第七篇:Spring Boot + Redis项目脚手架
java·spring boot·redis
沛沛老爹7 小时前
软件架构风格系列(2):面向对象架构
spring·软件架构风格·面向对象架构·架构入门
lyrhhhhhhhh7 小时前
Spring 框架 JDBC 模板技术详解
java·数据库·spring
亚林瓜子8 小时前
AWS Elastic Beanstalk控制台部署Spring极简工程
java·spring·云计算·aws·eb