2013-07-24 2 views
0

Я использую Spring Cache в своем приложении и хотел бы перейти на реализацию ehCache. Как я могу избежать указания всех имен кэша в ehcache.xml?Как избежать указания всего имени кеша в ehCache с весной?

<?xml version="1.0" encoding="UTF-8"?> 

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">  

    <defaultCache eternal="true" maxElementsInMemory="100" overflowToDisk="false" />   

    <cache name="test" maxElementsInMemory="10" eternal="true" overflowToDisk="false" /> 

</ehcache> 

Я хотел бы избежать указания всех имен кешей здесь в XML. Есть ли способ?

ответ

0

С помощью EhCache вы можете при необходимости создать все кэши (например, при запуске приложения) Он по-прежнему нуждается в файле ehcache.xml с минимальным значением по умолчанию, установленным по умолчанию, но тогда вы можете либо создать новый кэш 2 способа:

1 - на основе defaultCache, определенной в ehcache.xml:

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.

Смежные вопросы