まず、あなたがこのようなあなたのアプリコンテキストでEhcacheのCacheManagerのシングルトンを作成する必要があります。
<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;
...
}
、あなたは "完全autowired" ルートを移動したい場合は、ん:
<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"/>
は、実際のキャッシュ・インスタンスを注入する方法はありませんが、上記のように、あなたはキャッシュマネージャを注入して得るためにそれを使用することができますあなたが興味を持っているキャッシュ
これはもちろん、1つのキャッシュしか持たないと仮定しています –
@ClintonBosch - 複数ある場合、 '@ Autowired'で' @Qualifier( 'cacheBeanId') 'を使用するだけです。 – moshen