🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
###31.1.2 JCache (JSR-107) classpath下存在`javax.cache.spi.CachingProvider`(比如,一个遵循JSR-107的缓存library),则JCache将启动。这里有很多遵循JSR-107的libraries,Spring Boot为Ehcache 3, Hazelcast和Infinispan提供依赖管理,其他library也可以像这样添加。 如果出现多个提供商,你需要明确指定使用哪个(提供商)。尽管JSR-107标准没有强制定义配置文件的位置,Spring Boot会尽量配合各实现情况: ```properties # Only necessary if more than one provider is present spring.cache.jcache.provider=com.acme.MyCachingProvider spring.cache.jcache.config=classpath:acme.xml ``` **注** 由于一个缓存library可能提供的既有native实现,也有JSR-107支持,Spring Boot将优先使用JSR-107支持,这样如果你切换到不同的JSR-107实现,相同特性依旧可以使用。 以下方式可以自定义底层的`javax.cache.cacheManager`: * 通过设置`spring.cache.cache-names`属性,缓存可以在启动时就被创建。如果定义一个`javax.cache.configuration.Configuration` bean,它将用于自定义缓存。 * 使用`CacheManager`的引用调用`org.springframework.boot.autoconfigure.cache.JCacheManagerCustomizer` beans可完成全部配置。 **注** 如果定义标准的`javax.cache.CacheManager`,它将自动包装进`org.springframework.cache.CacheManager`以实现预期的抽象,也不能对它进一步配置了。