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

相关推荐
CoderYanger2 小时前
Java EE 进阶:4.Spring Web MVC 入门(第一弹)
java·开发语言·前端·spring·面试·java-ee·mvc
顽疲2 小时前
java springboot vue 养老系统源码详解:请假 care_leave 销假与床位停费日扣实践
java·vue.js·spring boot
XIAEE3 小时前
一个即时通讯项目是怎么长出来的:(Spring Boot 3 + Vue 3 微前端 + 悟空 IM + LiveKit)
java·spring
Java_AI工程师3 小时前
Spring4 / SpringBoot1.x 老项目想接入 AI?不用升级框架!3 套无痛落地方案
java·人工智能·spring boot
VimorphTech3 小时前
Java 文件缓存实战:如何避免读到未下载完成的视频?
java·spring boot
十年Java程序媛5 小时前
JVM 内存区域与对象内存布局|new 对象底层流程,对象头 MarkWord 详解
java·jvm·spring boot
linyb极客之路5 小时前
Spring Boot 2升3太痛苦?用OpenRewrite批量搞定,少走90%弯路!
spring boot
171320330计算机毕设编程5 小时前
计算机毕业设计 基于springboot+vue的在线观鸟视频播放网站 LW PPT
java·大数据·vue.js·spring boot·算法·课程设计
OxYGC5 小时前
Spring 面经系列 · 第 1 篇:Bean 生命周期、单例语义、依赖注入与线程安全
java·安全·spring
Pniubi7 小时前
力扣146.LRU缓存机制
算法·leetcode·缓存