第九章 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实现


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

相关推荐
WZTTMoon6 分钟前
Spring Boot 4.0 迁移核心注意点总结
java·spring boot·后端
寻kiki6 分钟前
scala 函数类?
后端
疯狂的程序猴17 分钟前
iOS App 混淆的真实世界指南,从构建到成品 IPA 的安全链路重塑
后端
bcbnb28 分钟前
iOS 性能测试的工程化方法,构建从底层诊断到真机监控的多工具测试体系
后端
开心就好202531 分钟前
iOS 上架 TestFlight 的真实流程复盘 从构建、上传到审核的团队协作方式
后端
小周在成长40 分钟前
Java 泛型支持的类型
后端
aiopencode40 分钟前
Charles 抓不到包怎么办?HTTPS 抓包失败、TCP 数据流异常与底层补抓方案全解析
后端
稚辉君.MCA_P8_Java1 小时前
Gemini永久会员 C++返回最长有效子串长度
开发语言·数据结构·c++·后端·算法
Penge6661 小时前
Redis-bgsave浅析
redis·后端
梁bk1 小时前
Redis 内存回收
数据库·redis·缓存