与Spring整合之后,提供了一套注解来对普通业务数据进行缓存.
常用的前2个:在业务层ServiceImpl方法名上加上注解即可
@Cacheable - 保存到缓存区:常用与findAll查询
@Cacheable("cache名称")
@Override
public List<User> findAll() {
return userRepository.findAll();
}
只要执行findAll方法,会将数据保存到缓存.cache名称=ehcache.xml自定义缓存名称,一定要一致
对于多参数方法,比如分页查询,有当前页currentPage,每页显示条数pageSize,使用符号来拼接
@Cacheable(value = "cache名称", key = "#pageBean.pageSize+'_'+#page.currentPage")
@CacheEvict - 清除缓存区数据:对增删改使用
@CacheEvict(value = "cache名称", allEntries = true)
@Override
public void save(User user) {
userRepository.save(user);
}
同理,执行保存方法,删除缓存区中的数据,allEntries = true表示是否清除数据,默认为false