0

アプリケーションで Spring Cache を使用しており、ehCache の実装を検討しています。ehcache.xml ですべてのキャッシュ名を指定しないようにするにはどうすればよいですか?

<?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 ですべてのキャッシュ名を指定することは避けたいと思います。方法はありますか?

4

1 に答える 1

0

EhCache を使用すると、必要に応じてすべてのキャッシュをプログラムで作成できます (つまり、アプリケーションの起動時など)。少なくとも defaultCache が定義された ehcache.xml が必要ですが、次の 2 つの方法で新しいキャッシュを作成できます。

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

于 2013-07-24T15:45:16.963 に答える