SpringBoot 使用 @Cacheable 进行缓存与取值

1. @Cacheable的作用

缓存使用步骤:@Cacheable这个注解,用它就是为了使用缓存的。所以我们可以先说一下缓存的使用步骤:

  1. 开启基于注解的缓存,使用 @EnableCaching 标识在 SpringBoot 的主启动类上。
  2. 标注缓存注解即可

第一步:开启基于注解的缓存,使用 @EnableCaching 标注在 springboot 主启动类上

//开启基于注解的缓存
@EnableCaching   
@EnableRyFeignClients
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class ZfjgAuthApplication {
    public static void main(String[] args) {
        SpringApplication.run(ZfjgAuthApplication.class, args);
    }
}

第二步:标注缓存注解

@Repository
public interface DeviceMapper {

    @Cacheable(cacheNames = "DeviceDO.deviceId")
    DeviceDO get(String deviceId);

    @CacheEvict(cacheNames = "DeviceDO.deviceId", key = "#record.deviceId")
    int insert(DeviceDO record);
}

注:这里使用 @Cacheable 注解就可以将运行结果缓存,以后查询相同的数据,直接从缓存中取,不需要调用方法。

2.常用属性说明

下面介绍一下 @Cacheable 这个注解常用的几个属性:

  • cacheNames/value :用来指定缓存组件的名字
  • key :缓存数据时使用的 key,可以用它来指定。默认是使用方法参数的值。(这个 key 你可以使用 spEL 表达式来编写)
  • keyGenerator :key 的生成器。 key 和 keyGenerator 二选一使用
  • cacheManager :可以用来指定缓存管理器。从哪个缓存管理器里面获取缓存。
  • condition :可以用来指定符合条件的情况下才缓存
  • unless :否定缓存。当 unless 指定的条件为 true ,方法的返回值就不会被缓存。当然你也可以获取到结果进行判断。(通过 #result 获取方法结果)
  • sync :是否使用异步模式。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值