Java 在创建的JCache实例上不使用ehcache.xml中的配置

Java 在创建的JCache实例上不使用ehcache.xml中的配置,java,xml,caching,ehcache,jcache,Java,Xml,Caching,Ehcache,Jcache,我试图使用JCache JSR 107的EHCache实现,我在src\main\resources\EHCache.xml下提供了以下配置文件: 我还不太熟悉EHCache,但对我来说,这里似乎创建了两个缓存——通过配置文件的默认缓存和通过编程创建的新缓存。我希望您使用cacheManager.getEhCache方法来获取预配置的缓存。从读取默认值来看,对于以编程方式创建的缓存,似乎将使用默认值。这里说明的是:默认缓存配置。这些设置将应用于使用CacheManager.addString c

我试图使用JCache JSR 107的EHCache实现,我在src\main\resources\EHCache.xml下提供了以下配置文件:


我还不太熟悉EHCache,但对我来说,这里似乎创建了两个缓存——通过配置文件的默认缓存和通过编程创建的新缓存。我希望您使用cacheManager.getEhCache方法来获取预配置的缓存。从读取默认值来看,对于以编程方式创建的缓存,似乎将使用默认值。这里说明的是:默认缓存配置。这些设置将应用于使用CacheManager.addString cacheName以编程方式创建的缓存。此外,无论是在JCache API上还是在其EHcache实现(即JCacheManager)上,都没有名为getEhCache!!我是说getEhcache,带小写c。我们必须使用不同的CacheManager实例
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="true" monitoring="autodetect"  dynamicConfig="true"> 
  <!-- see http://www.ehcache.org/ehcache.xml -->
  <defaultCache 
    maxEntriesLocalHeap="200000" 
    eternal="false"
    timeToIdleSeconds="1200"
    timeToLiveSeconds="1200">    
    <persistence strategy="localTempSwap"/>
  </defaultCache>
</ehcache>
String providerName = "org.ehcache.jcache.JCacheCachingProvider";
CachingProvider cachingProvider = Caching.getCachingProvider(providerName);
CacheManager cacheManager = cachingProvider.getCacheManager();
CompleteConfiguration<ComposedKey, Object> config = new MutableConfiguration<ComposedKey, Object>()
    .setTypes(ComposedKey.class, Object.class)
    .setExpiryPolicyFactory(FactoryBuilder.factoryOf(new AccessedExpiryPolicy(new Duration(TimeUnit.MINUTES, 30))))
    .setReadThrough(false)
    .setWriteThrough(false)
    .addCacheEntryListenerConfiguration(
        new MutableCacheEntryListenerConfiguration<ComposedKey, Object>(new CacheListenerManagerJSR107Factory(), null, true,
            true));
;
Cache<ComposedKey, Object> cache = cacheManager.createCache("cache", config);
[ name = orACJ2rF-1 status = STATUS_ALIVE eternal = false overflowToDisk = false maxEntriesLocalHeap = 1000 maxEntriesLocalDisk = 0 memoryStoreEvictionPolicy = LRU timeToLiveSeconds = 0 timeToIdleSeconds = 0 persistence = none diskExpiryThreadIntervalSeconds = 120 cacheEventListeners: org.ehcache.jcache.JCacheListenerAdapter ; orderedCacheEventListeners:  maxBytesLocalHeap = 0 overflowToOffHeap = false maxBytesLocalOffHeap = 0 maxBytesLocalDisk = 0 pinned = false ]