まず、次のようなアプリコンテキストでEhcacheCacheManagerシングルトンを作成する必要があります。
<bean id="myEhCacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:my-ehcache.xml"/>
</bean>
ここでconfigLocation
は、クラスパスからロードするか、を使用するように設定されていますvalue="/WEB-INF/my-ehcache.xml"
。
CacheManager
コントローラにインスタンスを挿入するだけです。
@Controller
public class MyUniqueService {
@Resource(name="myEhCacheManager")
private CacheManager cacheManager;
...
}
または、「完全に自動配線された」ルートを使用する場合は、次のようにします。
<bean class="org.springframework.cache.ehcache.EhCacheCacheManager">
<property name="cacheManager">
<bean class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="/WEB-INF/ehcache.xml"/>
</bean>
</property>
</bean>
次のようにクラスを設定します。
@Controller
public class MyUniqueService {
@Autowired
private org.springframework.cache.CacheManager cacheManager;
public org.springframework.cache.Cache getUniqueObjectCache() {
return cacheManager.getCache("uniqueObjectCache");
}
}
uniqueObjectCache
ehcache.xml
キャッシュ定義のこのキャッシュインスタンスに対応します。
<cache name="uniqueObjectCache"
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
memoryStoreEvictionPolicy="LRU"
transactionalMode="off"/>
実際のキャッシュインスタンスを挿入する方法はありませんが、上記のように、キャッシュマネージャーを挿入し、それを使用して目的のキャッシュを取得できます。