SpringBoot缓存

一.Spring的缓存抽象

1.简介

       Spring从3.1开始定义了org.springframework.cache.Cacheorg.springframework.cache.CacheManager接口来统一不同的缓存技术;并支持使用JCache(JSR-107)注解简化我们开发。

      CacheManager是Spring提供的各种缓存技术抽象接口;

      Cache接口为缓存的组件规范定义,包含缓存的各种操作集合;Cache接口下Spring提供了各种xxxCache的实现;如RedisCache,EhCacheCache , ConcurrentMapCache等。

2.主要注解
1. @Cacheable,方法级注解,它指定了被注解方法的返回值是可以被缓存的。

其工作原理是Spring首先会在缓存中查找数据,如果有数据,可以不执行该方法,直接返回远程数据;如果没有则执行方法并缓存结果,然后返回数据。

@Cacheable(cacheNames = {
  "emp"},key="#id",/*"keyGenerator = "myKeyGenerator"*/,
condition = "#a0>2",unless ="#id==2")
    public Employee getEmp(Integer id){
        System.out.println("查询"+id+"号员工");
        Employee emp = employeeMapper.getEmpById(id);
        return emp;
    }

@Cacheable的常用属性:

缓存名称:必须指定一个。
       @Cacheable("emp")
       @Cacheable(value="emp")
       @Cacheable(cacheNames = {"emp1","emp2"})
       @Cacheable(cacheNames="emp")
key:缓存数据使用的key,默认是使用方法参数的值。

1.缓存本质上就是键值对,key是使用keyGenerator生成的,默认使用SimpleKeyGenerator生成key;

SimpleKeyGenerator生成key的默认策略如下:

 如果没有参数;key=new SimpleKey();
 如果有一个参数:key=参数的值
 如果有多个参数:key=new SimpleKey(params);

 2.除了自动的生成策略,还可以根据实际需要自定义缓存的键,主要实现
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值