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();
}
相关推荐
J老熊22 分钟前
SpringBoot 源码解读与自动装配原理结合Actuator讲解
java·spring boot·后端·spring·面试·系统架构
上官花雨2 小时前
第八章 中间件:SpringBoot 集成 Redis
spring boot·redis·中间件
南瓜战士2 小时前
【经验分享】MyCAT 中间件
java·spring boot
paopaokaka_luck3 小时前
基于Spring Boot+Vue的精品项目分享
java·vue.js·spring boot·后端·elementui·毕业设计·mybatis
潘多编程3 小时前
自定义Spring Boot Starter:简化短信服务集成
java·spring boot·后端
微刻时光3 小时前
Redis缓存双写一致性笔记(上)
数据库·redis·笔记·缓存
努力的布布3 小时前
SpringMVC源码-SpringMVC源码请求执行流程及重点方法doDispatch讲解
java·后端·spring
OEC小胖胖3 小时前
Spring MVC系统学习(三)——数据绑定和响应
java·后端·学习·spring·mvc
ZhaiMou3 小时前
三篇文章速通JavaSE到SpringBoot框架 (下) Maven、 接口、MyBatis、Spring、SpringMVC、SpringBoot
java·spring boot·后端·spring·面试·maven·mybatis
威迪斯特4 小时前
linux网络服务:网络名称解析管理器,提供系统级的DNS缓存服务,并管理网络连接和DNS解析的服务systemd-resolved详解
linux·服务器·网络·缓存·dns·域名解析