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();
}
相关推荐
派大鑫wink16 分钟前
【Day57】SpringBoot 整合 Redis:吃透缓存配置与 API 实战
spring boot·redis·缓存
哪里不会点哪里.2 小时前
Spring MVC 核心原理解析:从请求到响应到底发生了什么?
java·spring·mvc
九皇叔叔2 小时前
application.yml 文件无 Spring 图标 + 无自动提示
java·spring boot·spring
heartbeat..3 小时前
Redis 常用命令全解析:基础、进阶与场景化实战
java·数据库·redis·缓存
让我上个超影吧3 小时前
天机学堂——多级缓存
java·spring boot·spring cloud
老毛肚4 小时前
Spring 6.0基于JDB手写定制自己的ROM框架
java·数据库·spring
小王不爱笑1324 小时前
@PropertySource&@ImportResource&@Bean
spring boot
optimistic_chen4 小时前
【Redis系列】分布式锁
linux·数据库·redis·分布式·缓存
Wyy_9527*5 小时前
行为型设计模式——状态模式
java·spring boot·后端
编程彩机5 小时前
互联网大厂Java面试:从分布式事务到微服务架构场景应用
spring boot·分布式事务·微服务架构·java面试·电商场景