带spring的cutom ehcache收回策略
如果我们想要自定义除LRU LFU FIFO之外的逐出策略,建议使用的方法是实现接口策略,然后设置MemoryStoreReceivingPolicy,如:带spring的cutom ehcache收回策略,spring,ehcache,evict,Spring,Ehcache,Evict,如果我们想要自定义除LRU LFU FIFO之外的逐出策略,建议使用的方法是实现接口策略,然后设置MemoryStoreReceivingPolicy,如: manager = new CacheManager(EHCACHE_CONFIG_LOCATION); cache = manager.getCache(CACHE_NAME); cache.setMemoryStoreEvictionPolicy(new MyPolicy()); 但是如果我使用spring,请使用@cacheable
manager = new CacheManager(EHCACHE_CONFIG_LOCATION);
cache = manager.getCache(CACHE_NAME);
cache.setMemoryStoreEvictionPolicy(new MyPolicy());
但是如果我使用spring,请使用@cacheable和xml文件,如
<bean id="cacheManagerFactory" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:ehcache.xml" ></property>
</bean>
<!-- cacheManager -->
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
<property name="cacheManager" ref="cacheManagerFactory" />
</bean>
我怎样才能以春天的方式注入我自己的政策
谢谢大家您最好实现自己的类,在Spring初始化时在缓存上设置逐出策略 例如:
public class MyEvictionPolicySetter implements InitializingBean {
public static final String CACHE_NAME = "my_cache";
private CacheManager manager;
private Policy evictionPolicy;
@Override
public void afterPropertiesSet() {
Cache cache = manager.getCache(CACHE_NAME);
cache.setMemoryStoreEvictionPolicy(evictionPolicy);
}
public void setCacheManager(CacheManager manager) {
this.manager = manager;
}
public void setEvictionPolicy(Policy evictionPolicy) {
this.evictionPolicy = evictionPolicy;
}
}
然后在Spring配置中:
<bean id="cacheManagerFactory" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:ehcache.xml" ></property>
</bean>
<!-- Specify your eviction policy as a Spring bean -->
<bean id="evictionPolicy" class="MyPolicy"/>
<!-- This will set the eviction policy when Spring starts up -->
<bean id="evictionPolicySetter" class="EvictionPolicySetter">
<property name="cacheManager" ref="cacheManagerFactory"/>
<property name="evictionPolicy" ref="evictionPolicy"/>
</bean>