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 配置文件中配置相应的缓存管理器。

相关推荐
utf8mb4安全女神15 分钟前
【Redis数据库】哨兵集群/redis集群/安装配置/主从复制/数据持久化操作/数据结构/安全限制/PHP redis/
linux·服务器·数据结构·数据库·redis·缓存
豆瓣鸡23 分钟前
封装 API 请求日志切面——从注解定义到 Starter 自动装配
java·开发语言·spring boot
xto_coo2 小时前
锡膏存储方法有哪些?
缓存
huangjiazhi_3 小时前
纯C++实现ini文件操作
java·后端·spring
犹豫的大炮4 小时前
jQuery最核心的基础设施之一——数据缓存模块进化史
前端·缓存·jquery
正儿八经的少年4 小时前
Spring Boot
java·spring boot·后端
豆瓣鸡4 小时前
封装 Jackson 配置 Starter:统一解决 LocalDateTime 请求解析和响应格式化问题
java·spring boot
宠友信息5 小时前
资源权限与钱包流水在即时通讯源码后端架构中的设计
java·spring boot·redis·websocket·缓存
霸道流氓气质5 小时前
Spring Boot 接入阿里云 RocketMQ 完整指南
spring boot·阿里云·java-rocketmq
卓怡学长5 小时前
w272基于springboot便民医疗服务小程序
java·spring boot·spring·小程序·intellij-idea