如果您尚未定义类型CacheManager或CacheResolver命名的bean cacheResolver(请参阅CachingConfigurer),在SB中通过@EnableCaching注解自动化配置合适的缓存管理器(CacheManager),SB根据下面的顺序去侦测缓存提供者:
-
Generic
-
JCache (JSR-107) (EhCache 3, Hazelcast, Infinispan, etc)
-
EhCache 2.x
-
Hazelcast
-
Infinispan
-
Couchbase
-
Redis
-
Caffeine
-
Guava (deprecated)
-
Simple
@Bean
public CacheManagerCustomizer<ConcurrentMapCacheManager> cacheManagerCustomizer() {
return new CacheManagerCustomizer<ConcurrentMapCacheManager>() {
@Override
public void customize(ConcurrentMapCacheManager cacheManager) {
cacheManager.setCacheNames(Arrays.asList("one", "two"));
}
};
}
如果上下文定义至少一个 org.springframework.cache.Cache bean,则使用Generic缓存,配置CacheManager包装。
JCache通过类javax.cache.spi.CachingProvider路径(即一个符合JSR-107的缓存库)和“Starter” JCacheCacheManager 提供的引导spring-boot-starter-cache。在那里有各种兼容的库,Spring Boot为Ehcache 3,Hazelcast和In