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();
}
相关推荐
我登哥MVP4 分钟前
【SpringMVC笔记】 - 3 - 获取请求数据
java·spring boot·spring·servlet·tomcat·maven·intellij-idea
cheems952726 分钟前
[JavaEE]深度解构 Spring 核心:从控制反转 (IoC) 到依赖注入 (DI) 的架构演进
java·spring·架构·java-ee
叫我刘同学36 分钟前
OpenAI API 成本控制实战:缓存 + 压缩 + 路由,让 token 消耗减半
缓存
数字芯片实验室43 分钟前
提示词缓存:一个新瓶装旧酒的agent降本手段
缓存
喝汽水的猫^44 分钟前
Spring Boot + RabbitMQ 实战:消息可靠投递+防重复消费(可直接落地)
spring boot·rabbitmq·java-rabbitmq
亚历克斯神10 小时前
JVM 内存管理 2026:深度解析与调优实战
java·spring·微服务
亚历克斯神14 小时前
Java 职业发展:2026 指南
java·spring·微服务
披着羊皮不是狼15 小时前
(7)为 RAG 系统接入 Redis Stack 实现向量持久化
数据库·redis·缓存
云烟成雨TD15 小时前
Spring AI Alibaba 1.x 系列【13】 检查点 (Checkpoint) 机制及各类持久化实现
java·人工智能·spring