Spring文档提供了以下信息。
<bean id="cacheManager"
class="org.springframework.cache.jcache.JCacheCacheManager"
p:cache-manager-ref="jCacheManager"/>
<!-- JSR-107 cache manager setup -->
<bean id="jCacheManager" .../>
我想知道如何在spring应用程序上下文xml中配置这个jcacheManager bean(使用EhCache作为提供者)。
我已经在pom.xml中配置了依赖项,如下所示,这很好。
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>jcache</artifactId>
<version>1.0.1</version>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
答案 0 :(得分:0)
这取决于您想要如何配置它。如果您正在使用Spring Boot 1.3,它将自动为您创建。也许您可以查看JCacheCacheConfiguration
来源?
您可以通过javax.cache.CacheManager
Caching.getCachingProvider().getCacheManager()
答案 1 :(得分:0)
现在将Ehache3.x与Spring4.x集成起来并不方便。 Spring启动它,它重写了一些代码:
<bean id="cacheManager"
class="org.springframework.cache.jcache.JCacheCacheManager"
在Spring boot中,它是:
@Bean
public JCacheCacheManager cacheManager(CacheManager jCacheCacheManager) {
return new JCacheCacheManager(jCacheCacheManager);
}
它需要一个javax.cache.CacheManager实例,
<!-- JSR-107 cache manager setup -->
<bean id="jCacheManager" .../>
Ehcache没有对我们进行深入介绍。
Spring boot确实如下:
@Bean
@ConditionalOnMissingBean
public CacheManager jCacheCacheManager() throws IOException {
CacheManager jCacheCacheManager = createCacheManager();
List<String> cacheNames = this.cacheProperties.getCacheNames();
if (!CollectionUtils.isEmpty(cacheNames)) {
for (String cacheName : cacheNames) {
jCacheCacheManager.createCache(cacheName, getDefaultCacheConfiguration());
}
}
customize(jCacheCacheManager);
return jCacheCacheManager;
}
创建javax.cache.CacheManager只是遵循Ehcache文档的正常操作。