第九章 SpringBoot缓存-方法的缓存❤❤

第九章 SpringBoot缓存-方法的缓存

  • 概述
  • [1. Ehcache 2.x 缓存](#1. Ehcache 2.x 缓存)
    • [1.1 SpringBoot整合Ehcache缓存](#1.1 SpringBoot整合Ehcache缓存)
    • [1.2 应用:缓存方法](#1.2 应用:缓存方法)
      • [缓存方法注解的使用 ❤❤❤](#缓存方法注解的使用 ❤❤❤)
  • [2. Redis实现](#2. Redis实现)
  • ***************************************

概述

1. Ehcache 2.x 缓存

1.1 SpringBoot整合Ehcache缓存

java 复制代码
<dependency> 
	<groupId>org. springframework. boot</groupId> 
	<artifactId>spring-boot-starter-cache</artifactId> 
</dependency> 
<dependency> 
	<groupId>net.sf.ehcache</groupId> 
	<artifactid>ehcache</artifactid> 
</dependency> 
<dependency> 
	<groupId>org.springframework.boot</groupId> 
	<artifactid>spring-boot-starter-web</artifactid> 
</dependency> 
xml 复制代码
<ehcache>
<diskStore path="java.io.tmpdir/cache"/>
<defaultCache
		maxElementsInMemory="10000"
		eternal="false"
		timeToIdleSeconds="120"
		timeToLiveSeconds="120"
		overflowToDisk="false"
		diskPersistent="false"
		diskExpiryThreadIntervalSeconds="120"
	/>
<cache name="book_cache"
		maxElementsInMemory="10000"
		eternal="true"
		timeToIdleSeconds="120"
		timeToLiveSeconds="120"
		overflowToDisk="true"
		diskPersistent="true"
		diskExpiryThreadIntervalSeconds="600"
	/>
</ehcache>
java 复制代码
 spring.cache.ehcache.config=classpath:config/another-config.xml

1.2 应用:缓存方法

缓存方法注解的使用 ❤❤❤

java 复制代码
@Repository
@CacheConfig(cacheNames ="book_cache")
public class BookDao {
	@Cacheable
	public Book getBookById(Integer id){
		System.out.println("getBookById");
		Book book = new Book();
		book.setId(id);
		book.setName("三国演义");
		book.setAuthor("罗贯中");
		return book;
	}
	
	@CachePut(key ="#book.id")
	public Book updateBookById(Book book){
		System.out.println("updateBookById");
		book.setName("三国演义2");
		return book;
	}
	
	@CacheEvict(key ="#id")
	public void deleteBookById(Integer id){
		System.out.println("deleteBookById");
	}
}



自定义缓存key生成器

如果这些key不能够满足开发需求,开发者也可以自定义缓存key的生成器KeyGenerator,

代码如下:

java 复制代码
@Component
public class MyKeyGenerator implements KeyGenerator {
	@Override
	public Object generate(Object target,Method method,object... params){
		return Arrays.tostring(params);
	}
}



2. Redis实现


***************************************

相关推荐
Gh0st_Lx9 分钟前
【9】面试官:讲一下MySQL 和 Redis 的缓存一致性问题
redis·mysql·缓存
绝知此事24 分钟前
Netty实战:从零构建高性能TCP通信服务(含心跳检测)
java·网络·spring boot·网络协议·tcp/ip
IT_陈寒1 小时前
Vue的computed属性怎么突然不更新了?
前端·人工智能·后端
invicinble1 小时前
spring提供的其他机制
java·后端·spring
AI产品实战1 小时前
流程引擎Flowable vs Warm-Flow 选型
spring boot
还是鼠鼠1 小时前
AI掘金头条新闻系统 (Toutiao News)-用户注册-创建用户
后端·python·mysql·fastapi·web
李广坤2 小时前
别再把 Filter、Interceptor 和 AOP 混为一谈了!从接口加解密谈 Spring 纵深架构设计
后端
我是一颗柠檬2 小时前
【MySQL全面教学】MySQL条件查询与排序Day4(2026年)
数据库·后端·mysql
她的男孩2 小时前
后台权限不只是菜单隐藏:Forge Admin 的 RBAC 权限链路拆解
java·后端·架构
苏三说技术2 小时前
IntelliJ IDEA 从卡顿到起飞,只用改这些。。。
后端