在Spring中配置JCache实现

时间:2012-06-14 23:25:29

标签: spring ehcache jcache

查看net.sf.cache.JS107的Ehcahce实现,我试图实现以下代码片段,以将JCache实现生成为Spring托管bean ..

  Ehcache Ehcache = new net.sf.ehcache.Cache(...);
  net.sf.jsr107cache.Cache cache = new JCache(ehcache);
  manager.addJCache(cache);

这是我的经理bean:

   <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
        <property name="shared" value="true"/>
    </bean>

这是我的Ehcache bean:

<bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheFactoryBean">
        <property name="cacheManager" ref="cacheManager"/>
        <property name="diskPersistent" value="false"/>
</bean>

以下是我创建JCache bean的方法:

<bean id="jcache" class="net.sf.jsr107cache.Cache">
        <constructor-arg ref="ehcache"/>
</bean>

我想要的是能够在Spring中调用以下方法将我的JCache应用到Ehcache管理器:

manager.addJCache(cache);

在Spring中必须有办法做到这一点吗?

由于

1 个答案:

答案 0 :(得分:1)

不要理会XML,只需使用Java @Configuration

@Bean
public Ehcache ehcache() {
    return new net.sf.ehcache.Cache(...);
}

@Bean
public net.sf.jsr107cache.Cache jsrCache() {
    net.sf.jsr107cache.Cache cache = new JCache(ehcache());
    manager.addJCache(cache);
    return cache;
}