1.介绍
Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。
Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,例如:
-
EHCache
-
Caffeine
-
Redis(常用)
起步依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> <version>2.7.3</version> </dependency>
在SpringCache中提供了很多缓存操作的注解,常见的是以下的几个:
注解 | 说明 |
---|---|
@EnableCaching | 开启缓存注解功能,通常加在启动类上,必加 |
@Cacheable | 在方法执行前先查询缓存中是否有数据,如果有数据,则直接返回缓存数据;如果没有缓存数据,调用方法并将方法返回值放到缓存中,执行时间为该方法运行完后。 @Cacheable(cacheNames = "userCache",key="#id") |
@CachePut | 将方法的返回值放到缓存中 @CachePut(value = "userCache", key = "#user.id") #:是el表达式,动态传参 那么在redis的键名为userCache::id。 |
@CacheEvict | 将一条或多条数据从缓存中删除 @CacheEvict(cacheNames = "userCache",key = "#id")//删除某个key对应的缓存数据 @CacheEvict(cacheNames = "userCache",allEntries = true)//删除userCache下所有的缓存数据 |
在spring boot项目中,使用缓存技术只需在项目中导入相关缓存技术的依赖包,并在启动类上使用@EnableCaching开启缓存支持即可。