31.1 支持的缓存提供商
缓存抽象不提供实际的存储,而是依赖于
org.springframework.cache.Cache
和org.springframework.cache.CacheManager
接口的实现。如果你还没有定义一个
CacheManager
类型的bean,或一个名为cacheResolver
的CacheResolver
(查看CachingConfigurer
),Spring Boot 将尝试以下提供商(按这个顺序):- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.提示 使用
spring-boot-starter-cache
“Starter”来快速添加基础的缓存依赖。“Starter”带来了spring-context-support
:如果你手动添加依赖,为了使用JCache、EhCache2.x或者Guava的支持,你必须添加spring-context-support
。如果CacheManager
是Spring Boot自动配置的,你可以在它完全初始化前,通过实现CacheManagerCustomizer
接口进一步配置,以下设置标志表明空值应当传递给底层映射:@Beanpublic CacheManagerCustomizer<ConcurrentMapCacheManager> cacheManagerCustomizer() {return new CacheManagerCustomizer<ConcurrentMapCacheManager>() {@Overridepublic void customize(ConcurrentMapCacheManager cacheManager) {cacheManager.setAllowNullValues(false);}};}注 在以上示例中,希望得到一个自动配置好的ConcurrentMapCacheManager
。如果没有配置(要么你提供你自己的配置,要么一个不同的缓存提供商被自动配置),则自定义器(customizer)将不会被调用。自定义器你添加多少都可以,并可以使用@Order
或Ordered
对它们进行排序。
最近更新 3yr ago