在Spring Boot中处理缓存,可以通过以下几个步骤来实现:
1、添加依赖:
首先,需要在项目的pom.xml
文件中添加spring-boot-starter-cache
依赖,以启用Spring Boot的缓存支持。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
2、开启缓存管理:
在配置类或启动类上添加@EnableCaching
注解,以开启缓存管理功能。
@Configuration
@EnableCaching
public class CacheConfig {
// 缓存配置
}
3、配置缓存管理器:
可以通过实现CacheManager
接口或使用CacheManagerCustomizer
接口来自定义缓存管理器的行为。例如,使用ConcurrentMapCacheManager
作为缓存管理器。
@Configuration
public class CacheManagerConfig {
@Bean
public CacheManager cacheManager() {
return new ConcurrentMapCacheManager("cache1", "cache2");
}
}
4、使用缓存注解:Spring Boot支持多种缓存注解,包括@Cacheable
、@CachePut
和@CacheEvict
,用于控制方法级别的缓存行为。
-
@Cacheable
:触发缓存填充。如果缓存中没有数据,则执行方法并将结果存入缓存。
@Cacheable(cacheNames = "cacheName", key = "#key")
public Object someMethod(String key) {
// 方法逻辑
}
-
@CachePut
:更新缓存而不干扰方法执行。
@CachePut(cacheNames = "cacheName", key = "#key")
public Object someMethod(String key) {
// 方法逻辑
}
-
@CacheEvict
:触发缓存失效。
@CacheEvict(cacheNames = "cacheName", key = "#key")
public void someMethod(String key) {
// 方法逻辑
}
5、配置特定缓存提供者:
如果需要使用特定的缓存提供者,如Redis、Caffeine等,可以通过设置spring.cache.type
属性来指定。
spring.cache.type=redis
6、自定义缓存配置:
对于不同的缓存提供者,如Redis、Caffeine等,可以通过定义特定的配置类来自定义缓存的行为。例如,对于Redis,可以定义RedisCacheManagerBuilderCustomizer
来自定义缓存的TTL(生存时间)。
@Configuration
public class RedisCacheConfig {
@Bean
public RedisCacheManagerBuilderCustomizer redisCacheManagerBuilderCustomizer() {
return builder -> builder
.withCacheConfiguration("cache1", RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofSeconds(10)))
.withCacheConfiguration("cache2", RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(1)));
}
}