springboot @Cacheable 基本使用

转载原文:https://www.cnblogs.com/lsys/p/11163613.html

springboot @Cacheable 基本使用

加入依赖

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-cache</artifactId>
</dependency>

开启注解缓存

在启动类上加入 @EnableCaching

缓存注解

  1. @Cacheable :对方法结果进行缓存(主要用于GET方法)
    1. cacheNames/value:指定缓存主键(Cache)的名字
    2. key:缓存数据使用key,支持spEl语法
    3. keyGenerator:key的生成器。与key属性冲突,自定义 keyGenerator 必须实现org.springframework.cache.interceptor.KeyGenerator,default使用默认的参数值生成器
    4. cacheManager:指定缓存管理器,或者cacheResolver指定获取解析器
    5. cacheResolver: 与CacheManager冲突
    6. condition:指定条件满足才缓存,与unless相反。可以使用spEL语法
    7. unless:否定缓存,当满足条件时,结果不被缓存。可以获取到结果(#result)进行判断。支持spEL语法
    8. sync:是否异步模式。在该模式下unless不被支持。default=false
  2. @CachePut:先调用方法,在对结果进行缓存。(主要用于PUT方法),需要注意key的设置
  3. @CacheEvict:默认先调用方法,在删除缓存(主要用于DELETE方法)
    1. allEntries: 删除缓存组件中(cacheNames/value指定)所有的值
    2. beforeInvocation:在方法执行之前删除值,default=false
  4. @Caching:组合注解。针对复杂情况
  5. @CacheConfig:加载类上,用于设置缓存的共有属性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
@Cacheable是Spring Boot中用于实现缓存的注解之一。在使用@Cacheable时,需要在方法上添加该注解,并指定缓存的名称和缓存的键值。根据不同的缓存解析器和缓存管理器,可以选择在方法参数或方法返回值上使用SpEL表达式来生成缓存的键值。 例如,在使用@Cacheable时,可以通过在方法上添加该注解,并指定cacheNames和key属性来实现缓存功能。其中,cacheNames指定了要使用的缓存的名称,可以通过在配置文件中配置相应的缓存管理器来定义这个名称。key属性用于生成缓存的键值,可以使用SpEL表达式来引用方法参数或其他属性,以生成动态的键值。 示例代码如下: ``` @Cacheable(cacheNames = "emp", key = "#name") public String getString1(String name) { // 方法的具体实现 } ``` 在上述示例中,@Cacheable注解被应用于方法getString1上。cacheNames属性指定了缓存的名称为"emp",key属性使用了SpEL表达式"#name"来引用方法的参数name作为缓存的键值。 需要注意的是,使用@Cacheable注解时,需要确保已经配置了合适的缓存解析器和缓存管理器。可以使用默认的SimpleCacheResolver或者自定义的CacheResolver类来实现更灵活的缓存解析。 总结起来,@Cacheable注解可以通过指定cacheNames和key属性来实现方法级的缓存功能,使得方法的结果可以被缓存起来,提高系统的性能和响应速度。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [SpringBoot @Cacheable缓存注解的使用](https://blog.csdn.net/qq_28834355/article/details/109559302)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [springboot @Cacheable 基本使用](https://blog.csdn.net/weixin_39602579/article/details/112044641)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值