spring 缓存

1.spring缓存注解,可以丢在controller,也可以丢在service,也可以丢在mapper。

2.手动操作缓存使用:

java 复制代码
    @Autowired
    private CacheManager cacheManager;

3.添加缓存

java 复制代码
//添加缓存
@Override
@Cacheable(cacheNames = "test", key = "'test_model' + #id",unless="#result == null") //如果结果为空,不缓存
public TestModel selectByIdCache(Long id) {
    return baseMapper.selectById(id);
}
//等于代码:
@Override
public TestModel selectByIdCache(Long id) {
    TestModel model baseMapper.selectById(id);
    if(model!=null){//如果结果为空,不缓存
    	Cache cache = cacheManager.getCache("test");
    	cache.put("test_model"+id,model);
    }
    return model;
}

4.删除缓存

java 复制代码
//注解删除缓存
@CacheEvict(cacheNames = "test", key = "'test_model' + #bo.id")
@Override
public Boolean updateByBo(TestModelBo bo) {
}
//等于代码:
@Override
public Boolean updateByBo(TestModelBo bo) {
	Cache cache = cacheManager.getCache("test");
    cache.evict("test_model"+bo.getId());
}

5.清空缓存

java 复制代码
//注解清空缓存
@CacheEvict(cacheNames = "test", allEntries = true)
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
}
//等于代码:
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
	Cache cache = cacheManager.getCache("test");
    cache.clear();
}
相关推荐
小马爱打代码4 小时前
Spring AI:搭建自定义 MCP Server:获取 QQ 信息
java·人工智能·spring
韩立学长4 小时前
基于Springboot流浪动物领养网站0kh2iyb4(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
源码获取_wx:Fegn08955 小时前
基于springboot + vue心理健康管理系统
vue.js·spring boot·后端
Vic101017 小时前
解决 Spring Security 在异步线程中用户信息丢失的问题
java·前端·spring
QD_IT伟7 小时前
SpringBoot项目整合Tlog 数据链路的规范加强
java·spring boot·后端
源码获取_wx:Fegn08957 小时前
基于springboot + vue二手交易管理系统
java·vue.js·spring boot·后端·spring·课程设计
Zsh-cs7 小时前
Spring
java·数据库·spring
爬山算法7 小时前
Springboot请求和响应相关注解及使用场景
java·spring boot·后端
老华带你飞7 小时前
在线教育|基于springboot + vue在线教育系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·后端
TT哇7 小时前
【项目】玄策五子——匹配模块
java·spring boot·websocket·spring·java-ee·maven