Spring定义了org.springframework.cache.CacheManager和org.springframework.cache.Cache接口用来统一不
同的缓存技术。其中,CacheManager是Spring提供的各种缓存技术抽象接口,Cache接口包含缓存的各种操作(增
删改查,我们一般不会直接和此接口打交道)。
针对不同的缓存技术,是需要实现不同的CacheManager,Spring定义了如下表所示的CacheManager实现:
CacheManager | 描述 |
SimpleCacheManager | 使用简单的Collection来存储缓存,主要用来测试用途 |
ConcurrentMapCacheManager | 使用ConcurrentMap来存储 |
NoOpCacheManager | 仅测试用途,不会市级存储缓存 |
EhCacheCacheManager | 使用EhCache作为缓存技术 |
GuavaCacheManager | 使用Google Guava的GuavaCache作为缓存技术 |
HazelcastCacheManager | 使用Hazelcast作为缓存技术 |
JCacheCacheManager | 支持JCache(JSR-107)标准的实现作为缓存技术,如Apache Commons JCS |
RedisCacheManager | 使用Redis作为缓存技术 |
Spring Boot的支持:
在Spring Boot中使用缓存时,CacheManager是自动配置的,只需要导入相关的缓存技术的依赖包,并在配置
类上使用@EnableCaching开启缓存技术支持即可。缓存配置如下:
- 1
- 2
- 3
spring.cache.type= #可选generic,ehcache,hazelcast,infinispan,jcache,redis,guava,simple, none
spring.cache.cache-names= #程序启动时创建缓存名称
spring.cache.ehcache.config= #ehcache配置文件地址
spring.cache.hazelcast.config= #hazelcast配置文件地址
spring.cache.infinispan.config= #infinispan配置文件地址
spring.cache.jcache.config= #jcache配置文件地址
spring.cache.jcache.provider= #当多个jcache实现在类路径中的时候,制定jcache实现
spring.cache.guava.spec= #guava spec