当前位置: 首页 > article >正文

浅谈Java注解之Cacheable

一、Cacheable注解的介绍

@Cacheable是Spring框架提供的缓存注解,用于方法级别,表示该方法的返回结果是可以被缓存的。当方法被调用时,Spring会检查缓存中是否已有该方法参数对应的结果。如果有,直接从缓存中返回结果;如果没有,执行方法并将返回结果放入缓存中,以便后续相同参数的调用可以直接从缓存中获取结果,从而提高性能。

二、Cacheable注解的特点

1、减少重复计算:通过缓存方法的返回结果,避免重复的计算或数据库查询,提高应用性能。

2、条件缓存:可以通过条件表达式决定是否缓存结果。

3、自定义缓存键:可以自定义生成缓存键的方式,灵活控制缓存数据的存储。

4、支持多个缓存:可以指定方法的结果存储在多个缓存中。

5、异步缓存:支持异步模式,可以在后台线程中进行缓存操作,提高性能。

三、Cacheable注解的使用方法

开启缓存支持:在Spring Boot的主启动类上添加@EnableCaching注解,开启基于注解的缓存支持。

@SpringBootApplication
@EnableCaching
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

使用@Cacheable注解:在需要缓存的方法上添加@Cacheable注解,并配置相关属性。

@Cacheable(cacheNames = "myCache", key = "#id")
public Object getData(String id) {
    // 获取业务数据
    return data;
}

四、Cacheable注解的属性

1、cacheNames/value:指定缓存组件的名字,可以指定多个缓存。

2、key:缓存数据时使用的key,可以使用SpEL表达式编写。

3、keyGenerator:key的生成器,可以自定义key的生成逻辑。

4、cacheManager:指定缓存管理器,用于获取缓存。

5、condition:指定条件表达式,只有满足条件时才进行缓存。

6、unless:否定缓存,当指定条件为true时,不进行缓存。

7、sync:是否使用异步模式进行缓存操作。


http://www.kler.cn/a/441005.html

相关文章:

  • 获取微信用户openid
  • Web项目图片视频加载缓慢/首屏加载白屏
  • 使用git bash本地创建分支并将分支提交到远程仓库
  • Python 助力 DBA:高效批量管理数据库服务器的多线程解决方案-多库查询汇总工具实现
  • Gunicorn启动Django服务
  • 游戏引擎学习第48天
  • 【深度学习总结】使用PDF构建RAG:结合Langchain和通义千问
  • [C++项目] Mprpc分布式网络通信框架
  • 【YashanDB知识库】同样建表语句,大整型数字在Oracle插入成功,在YashanDB插入失败
  • C语言入门(一):A + B _ 基础输入输出
  • 【工具】Git 操作大全
  • 6.3.1 MR实战:计算总分与平均分
  • Redis - 位置检索 Geolocation
  • 【JavaWeb后端学习笔记】Spring Task实现定时任务处理
  • C#-Blazor-在线读取测序ABI文件并绘制峰图
  • java乱序执行实验
  • Java——网络编程(下)
  • IOS学习路线图
  • 【数据库系列】PostgreSQL 数据库连接
  • 【Unity踩坑】Unity生成iOS的XCode项目时提示错误:xcrun: error: SDK “iphoneos“ cannot be located