- ③. 测试得到的结果:
- 如果缓存中有,方法不再调用
- key是默认自动生成的,包含缓存名字::SimpleKey(自动生成的key值)
- 缓存的value的值。默认使用jdk序列化机制,将序列化后的数据存到redis
- 默认过期时间是 -1
④. 指定自己的key,并设置过期时间
//application.properties spring.cache.type=redis #spring.cache.cache-names= #设置存活时间,ms为单位 spring.cache.redis.time-to-live=3600000
/** 自定义 (1). 指定生成缓存的key key属性指定,接收一个spl表达式 详细文档:https://docs.spring.io/spring-framework/docs/5.2.16.RELEASE/spring-framework-reference/integration.html#cache-spel-context (2). 指定缓存的数据存活时间(在配置文件中修改了ttl) */ @Cacheable(value={"category"},key = "'Level1Categorys'") @Override public List<CategoryEntity> getLevel1Category() { long l= System.currentTimeMillis(); QueryWrapper<CategoryEntity> wrapper = new QueryWrapper<>(); wrapper.eq("parent_cid",0); List<CategoryEntity> entities = baseMapper.selectList(wrapper); log.info("消耗时间:"+(System.currentTimeMillis()-l)); return entities; }
⑤. 如果使用#root.method.name
@Cacheable(value={"category"},key = "#root.method.name")