Springboot缓存
启动缓存@EnableCaching
@Cacheable
@Cacheable
注解就可以将运行结果缓存,以后查询相同的数据,直接从缓存中取,不需要调用方法。
@Cacheable(cacheNames = "findAll")
@Override
public List<BookType> findAll() {
List<BookType> bookTypes = bookTypeDao.selectList(null);
return bookTypes;
}
序列 | 参数 | 解释 |
---|---|---|
1 | cacheNames | 指定缓存组件的名字 |
2 | key | 缓存数据时使用的key,默认使用方法参数 |
3 | keyGenerator | key 的生成器。 key 和 keyGenerator 二选一使用 |
4 | cacheManager | 可以用来指定缓存管理器。从哪个缓存管理器里面获取缓存。 |
5 | condition | 可以用来指定符合条件的情况下才缓存 |
6 | unless | 否定缓存。当 unless 指定的条件为 true ,方法的返回值就不会被缓存。当然你也可以获取到结果进行判断 |
7 | sync | 是否使用异步模式。 |
@Cacheable(cacheNames = "findByName",key = "#name")
@Override
public List<BookType> findByName(String name) {
LambdaQueryWrapper<BookType> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(BookType::getName, name);
List<BookType> bookTypes = bookTypeDao.selectList(queryWrapper);
return bookTypes;
}
@CachePut
@CachePut也可以声明一个方法支持缓存功能。与@Cacheable不同的是使用@CachePut标注的方法在执行前不会去检查缓存中是否存在之前执行过的结果,而是每次都会执行该方法,并将执行结果以键值对的形式存入指定的缓存中。
@CachePut(cacheNames = "findAll")
@Override
public List<BookType> findAll() {
List<BookType> bookTypes = bookTypeDao.selectList(null);
return bookTypes;
}
@CacheEvict
@CacheEvict是用来标注在需要清除缓存元素的方法或类上的。当标记在一个类上时表示其中所有的方法的执行都会触发缓存的清除操作。
key: 从缓存块中移出的key值文章来源:https://www.toymoban.com/news/detail-836259.html
文章来源地址https://www.toymoban.com/news/detail-836259.html
@Cacheable(cacheNames = "privses",key = "#id")
@Override
public Privs findById(Long id) {
return privsDao.findById(id).get();
}
@CacheEvict(cacheNames = "privses",key="#id")
@Override
public void delById(long id) {
// privsDao.deleteById(id);
System.out.println("数据库删除:"+id+"完成....,更新缓存");
}
到了这里,关于springboot2入门到实战-spring缓存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!