使用 EhCache,您可以根据需要以编程方式创建所有缓存(例如,在应用程序启动时)它仍然需要一个 ehcache.xml,其中至少定义了一个 defaultCache...但是您可以通过两种方式创建一个新的缓存:
1 - 基于 ehcache.xml 中定义的 defaultCache:
CacheManager singletonManager = CacheManager.create();
singletonManager.addCache("testCache");
2 - 基于您想要的自定义设置:
//Create a singleton CacheManager using defaults
CacheManager manager = CacheManager.create();
//Create a Cache specifying its configuration.
Cache testCache = new Cache(
new CacheConfiguration("testCache", maxEntriesLocalHeap)
.memoryStoreEvictionPolicy(MemoryStoreEvictionPolicy.LFU)
.eternal(false)
.timeToLiveSeconds(60)
.timeToIdleSeconds(30)
.diskExpiryThreadIntervalSeconds(0)
.persistence(new PersistenceConfiguration().strategy(Strategy.LOCALTEMPSWAP)));
//Remember to add the cache to the cacheManager: The cache is not usable until it has been added.
manager.addCache(testCache);
更多信息:http ://ehcache.org/documentation/code-samples#adding-and-removing-caches-programmatically和http://ehcache.org/documentation/code-samples#creating-caches-programmatically。