0

查看 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 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);

在春天一定有办法做到这一点?

谢谢

4

1 回答 1

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;
}
于 2012-06-15T16:28:13.877 回答